]> git.lizzy.rs Git - elidragon_v2.git/commitdiff
Add plot mapgen + plot mapgen config for creative & survival
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 21 Feb 2021 14:52:09 +0000 (15:52 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 21 Feb 2021 14:52:09 +0000 (15:52 +0100)
mods/elidragon_creative/init.lua [new file with mode: 0644]
mods/elidragon_creative/mod.conf [new file with mode: 0644]
mods/elidragon_plot/init.lua [new file with mode: 0644]
mods/elidragon_skyblock/init.lua [new file with mode: 0644]
mods/elidragon_skyblock/mod.conf [new file with mode: 0644]
worlds/creative/world.mt
worlds/lobby/world.mt
worlds/skyblock/world.mt
worlds/survival/world.mt

diff --git a/mods/elidragon_creative/init.lua b/mods/elidragon_creative/init.lua
new file mode 100644 (file)
index 0000000..558ffb3
--- /dev/null
@@ -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 (file)
index 0000000..8ce5272
--- /dev/null
@@ -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 (file)
index 0000000..8ae305c
--- /dev/null
@@ -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 (file)
index 0000000..c58938f
--- /dev/null
@@ -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 (file)
index 0000000..35ae635
--- /dev/null
@@ -0,0 +1,4 @@
+name = elidragon_skyblock
+author = Fleckenstein
+description = Skyblock gamemode for Elidragon v2
+depends = elidragon, elidragon_plot, mcl_core
index efe07fc53a4c6d2bda7d3595a51ad8267a72c492..480b70c3b043e8469477199d89b2faeb45df4f9a 100644 (file)
@@ -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
index 42a4beafeb62f0ab9cf998cb03a773277979f89e..370bb10b81bfb1e273d5233a3175975e256a851f 100644 (file)
@@ -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
index b57c962decbab62e0bd08d6ff250c150c8ccd73a..9c131d8927cc6d7f8490d07fcc19f14e0b124b30 100644 (file)
@@ -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
index b5631187b37b7631c0e2f97266b3d6531584e20e..b3ac373f7fe5f521bc439b2618202ef9a016debe 100644 (file)
@@ -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