From: Elias Fleckenstein Date: Sun, 21 Feb 2021 14:52:09 +0000 (+0100) Subject: Add plot mapgen + plot mapgen config for creative & survival X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=dea038101f50222f3f2dc02324466940d57beef9;p=elidragon_v2.git Add plot mapgen + plot mapgen config for creative & survival --- diff --git a/mods/elidragon_creative/init.lua b/mods/elidragon_creative/init.lua new file mode 100644 index 0000000..558ffb3 --- /dev/null +++ b/mods/elidragon_creative/init.lua @@ -0,0 +1,18 @@ +local plot = elidragon.plot + +plot.config = { + gap = 32, + road_with = 8, + mapgen = { + enable = true, + min_y = 9, + max_y = 9, + c_border = minetest.get_content_id("mcl_core:stonebrickcarved"), + }, + claiming = { + enable_autoclaim_command = true, + max_plots = 5, + }, +} + +elidragon.creative = {} diff --git a/mods/elidragon_creative/mod.conf b/mods/elidragon_creative/mod.conf new file mode 100644 index 0000000..8ce5272 --- /dev/null +++ b/mods/elidragon_creative/mod.conf @@ -0,0 +1,4 @@ +name = elidragon_creative +author = Fleckenstein +description = Creative gamemode for Elidragon v2 +depends = elidragon, elidragon_plot, mcl_core diff --git a/mods/elidragon_plot/init.lua b/mods/elidragon_plot/init.lua new file mode 100644 index 0000000..8ae305c --- /dev/null +++ b/mods/elidragon_plot/init.lua @@ -0,0 +1,58 @@ +local plot = {} + +minetest.register_on_generated(function(minp, maxp) + local mgconfig = plot.config.mapgen + + if not mgconfig.enable then + return + end + + local min_y, max_y = mgconfig.min_y, mgconfig.max_y + + if maxp.y < min_y or minp.y > max_y then + return + end + + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local data = vm:get_data() + local area = VoxelArea:new({MinEdge = emin, MaxEdge = emax}) + + local void_layer = mgconfig.void_layer + + if void_layer then + for idx in area:iter(minp.x, math.max(minp.y, void_layer.min_y), minp.z, maxp.x, math.min(maxp.y, void_layer.max_y), mapx.z) do + data[idx] = void_layer.c_void + end + end + + local function do_multiples(low, high, base, add, func) + for p = math.ceil(low / base), math.floor(high / base) do + func(p * base + add) + end + end + + local function do_borders(low, high, base, road, func) + local r = road / 2 + do_multiples(low - r, high - r, base, r, func) + do_multiples(low + r, high + r, base, -r, func) + end + + do_borders(minp.x, maxp.x, mgconfig.gap, mgconfig.road_width, function(x) + for idx in area:iter(x, math.max(minp.y, min_y), minp.z, x, math.min(maxp.y, max_y), mapx.z) do + data[idx] = mgconfig.c_border + end + end) + + do_borders(minp.z, maxp.z, mgconfig.gap, mgconfig.road_width, function(z) + for idx in area:iter(minp.x, math.max(minp.y, min_y), z, maxp.x, math.min(maxp.y, max_y), z) do + data[idx] = mgconfig.c_border + end + end) + + vm:set_data(data) + vm:calc_lighting() + vm:update_liquids() + vm:write_to_map() +end) + +elidragon.plot = plot diff --git a/mods/elidragon_skyblock/init.lua b/mods/elidragon_skyblock/init.lua new file mode 100644 index 0000000..c58938f --- /dev/null +++ b/mods/elidragon_skyblock/init.lua @@ -0,0 +1,26 @@ +local plot = elidragon.plot + +plot.config = { + gap = 1000, + road_width = 100, + --[[min_y = 2000, + max_y = 31000,]]-- + mapgen = { + enable = true, + min_y = 1000, + max_y = 31000, + void_layer = { + min_y = 1000, + max_y = 2000, + c_void = minetest.get_content_id("mcl_core:void"), + }, + c_border = minetest.get_content_id("mcl_core:barrier"), -- ToDo: make world border + }, + --[[claiming = { + auto_allocation = true, + on_claim = function() -- create island and move there + end + },]]-- +} + +elidragon.skyblock = {} diff --git a/mods/elidragon_skyblock/mod.conf b/mods/elidragon_skyblock/mod.conf new file mode 100644 index 0000000..35ae635 --- /dev/null +++ b/mods/elidragon_skyblock/mod.conf @@ -0,0 +1,4 @@ +name = elidragon_skyblock +author = Fleckenstein +description = Skyblock gamemode for Elidragon v2 +depends = elidragon, elidragon_plot, mcl_core diff --git a/worlds/creative/world.mt b/worlds/creative/world.mt index efe07fc..480b70c 100644 --- a/worlds/creative/world.mt +++ b/worlds/creative/world.mt @@ -6,11 +6,14 @@ auth_backend = sqlite3 player_backend = sqlite3 load_mod_default = false load_mod_elidragon = true +load_mod_elidragon_creative = true load_mod_elidragon_grouplist = false load_mod_elidragon_luckyblock = false +load_mod_elidragon_plot = true load_mod_elidragon_random = false load_mod_elidragon_request = true load_mod_elidragon_schems = false +load_mod_elidragon_skyblock = false load_mod_elidragon_tp = true load_mod_elidragon_util = true load_mod_lucky_block = false diff --git a/worlds/lobby/world.mt b/worlds/lobby/world.mt index 42a4bea..370bb10 100644 --- a/worlds/lobby/world.mt +++ b/worlds/lobby/world.mt @@ -6,11 +6,14 @@ auth_backend = sqlite3 player_backend = sqlite3 load_mod_default = false load_mod_elidragon = true +load_mod_elidragon_creative = false load_mod_elidragon_grouplist = false load_mod_elidragon_luckyblock = false +load_mod_elidragon_plot = false load_mod_elidragon_random = false load_mod_elidragon_request = false load_mod_elidragon_schems = false +load_mod_elidragon_skyblock = false load_mod_elidragon_tp = false load_mod_elidragon_util = false load_mod_lucky_block = false diff --git a/worlds/skyblock/world.mt b/worlds/skyblock/world.mt index b57c962..9c131d8 100644 --- a/worlds/skyblock/world.mt +++ b/worlds/skyblock/world.mt @@ -6,11 +6,14 @@ auth_backend = sqlite3 player_backend = sqlite3 load_mod_default = true load_mod_elidragon = true +load_mod_elidragon_creative = false load_mod_elidragon_grouplist = true load_mod_elidragon_luckyblock = true +load_mod_elidragon_plot = true load_mod_elidragon_random = false load_mod_elidragon_request = true load_mod_elidragon_schems = false +load_mod_elidragon_skyblock = true load_mod_elidragon_tp = true load_mod_elidragon_util = true load_mod_lucky_block = true diff --git a/worlds/survival/world.mt b/worlds/survival/world.mt index b563118..b3ac373 100644 --- a/worlds/survival/world.mt +++ b/worlds/survival/world.mt @@ -6,11 +6,14 @@ auth_backend = sqlite3 player_backend = sqlite3 load_mod_default = false load_mod_elidragon = true +load_mod_elidragon_creative = false load_mod_elidragon_grouplist = false load_mod_elidragon_luckyblock = false +load_mod_elidragon_plot = false load_mod_elidragon_random = false load_mod_elidragon_request = true load_mod_elidragon_schems = false +load_mod_elidragon_skyblock = false load_mod_elidragon_tp = true load_mod_elidragon_util = true load_mod_lucky_block = false