]> git.lizzy.rs Git - elidragon_v2.git/commitdiff
Proper indentation in the plotmg; remove void layer and fix dependency problem
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 28 Feb 2021 19:31:29 +0000 (20:31 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 28 Feb 2021 19:31:29 +0000 (20:31 +0100)
mods/elidragon_plotmg/init.lua
mods/elidragon_skyblock/init.lua
worlds/skyblock/world.mt

index eccf652d45a2f39279d3d4ae2ece82b71cea4235..185e6521b6776511df80224f3e4afef1c27a48b1 100644 (file)
@@ -3,74 +3,68 @@ local plot, schems = elidragon.plot, elidragon.schems
 local plotmg = {}
 
 minetest.register_on_generated(function(minp, maxp)
-        local config = assert(plot.config)
-        local mgconfig = assert(plotmg.config)
-
-        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)
-                do_multiples(low - road, high - road, base,  road, func)
-                do_multiples(low + road, high + road, base, -road, func)
-        end
-
-        min_y, max_y = math.max(minp.y, min_y), math.min(maxp.y, max_y)
-
-        local gap, road_width = config.gap, config.road_width
-        local road_width_half = road_width / 2
-
-        do_borders(minp.x, maxp.x, gap, road_width_half, function(x)
-                do_multiples(minp.z - gap + road_width_half, maxp.z - road_width_half, gap, road_width_half, function(start_z)
-                        for idx in area:iter(x, min_y, math.max(minp.z, start_z), x, max_y, math.min(maxp.z, start_z + gap - road_width)) do
-                                data[idx] = mgconfig.c_border
-                        end
-                end)
-        end)
-
-        do_borders(minp.z, maxp.z, gap, road_width_half, function(z)
-                do_multiples(minp.x - gap + road_width_half, maxp.x - road_width_half, gap, road_width_half, function(start_x)
-                        for idx in area:iter(math.max(minp.x, start_x), min_y, z, math.min(maxp.x, start_x + gap - road_width), max_y, z) do
-                                data[idx] = mgconfig.c_border
-                        end
-                end)
-        end)
-
-        vm:set_data(data)
-        vm:calc_lighting()
-        vm:update_liquids()
-        vm:write_to_map()
-
-        local road_schem = mgconfig.road_schem
-
-        if road_schem and min_y == mgconfig.min_y then
-                do_multiples(minp.x, maxp.x, gap, 0, function(x)
-                        do_multiples(minp.z, maxp.z, gap, 0, function(z)
-                                schems.add(vector.new(x + road_width_half, min_y + mgconfig.road_schem_offset, z - road_width_half + 1), road_schem)
-                                schems.add(vector.new(x - road_width_half + 1, min_y + mgconfig.road_schem_offset, z + road_width_half), road_schem .. "_flipped")
-                        end)
-                end)
-        end
+       collectgarbage()
+
+       local config = assert(plot.config)
+       local mgconfig = assert(plotmg.config)
+
+       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 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)
+               do_multiples(low - road, high - road, base,  road, func)
+               do_multiples(low + road, high + road, base, -road, func)
+       end
+
+       min_y, max_y = math.max(minp.y, min_y), math.min(maxp.y, max_y)
+
+       local gap, road_width = config.gap, config.road_width
+       local road_width_half = road_width / 2
+
+       do_borders(minp.x, maxp.x, gap, road_width_half, function(x)
+               do_multiples(minp.z - gap + road_width_half, maxp.z - road_width_half, gap, road_width_half, function(start_z)
+                       for idx in area:iter(x, min_y, math.max(minp.z, start_z), x, max_y, math.min(maxp.z, start_z + gap - road_width)) do
+                               data[idx] = mgconfig.c_border
+                       end
+               end)
+       end)
+
+       do_borders(minp.z, maxp.z, gap, road_width_half, function(z)
+               do_multiples(minp.x - gap + road_width_half, maxp.x - road_width_half, gap, road_width_half, function(start_x)
+                       for idx in area:iter(math.max(minp.x, start_x), min_y, z, math.min(maxp.x, start_x + gap - road_width), max_y, z) do
+                               data[idx] = mgconfig.c_border
+                       end
+               end)
+       end)
+
+       vm:set_data(data)
+       vm:calc_lighting()
+       vm:update_liquids()
+       vm:write_to_map()
+
+       local road_schem = mgconfig.road_schem
+
+       if road_schem and min_y == mgconfig.min_y then
+               do_multiples(minp.x, maxp.x, gap, 0, function(x)
+                       do_multiples(minp.z, maxp.z, gap, 0, function(z)
+                               schems.add(vector.new(x + road_width_half, min_y + mgconfig.road_schem_offset, z - road_width_half + 1), road_schem)
+                               schems.add(vector.new(x - road_width_half + 1, min_y + mgconfig.road_schem_offset, z + road_width_half), road_schem .. "_flipped")
+                       end)
+               end)
+       end
 end)
 
 elidragon.plotmg = plotmg
index c3ef330b3b99137dca8d55bd5f559fc2d47075ab..91c43af25180c25a2ab398d5d1bff85a44d73cd0 100644 (file)
@@ -13,12 +13,7 @@ plot.config = {
 plotmg.config = {
        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      
+       c_border = minetest.get_content_id("mcl_core:barrier"),
 }
 
 elidragon.skyblock = {}
index a45260f9961a4eae79359f235c7ef75db168d949..635e0ce8b48689182b288351306a4bfc787e2091 100644 (file)
@@ -18,7 +18,7 @@ load_mod_elidragon_plotmg = true
 load_mod_elidragon_random = false
 load_mod_elidragon_ranks = true
 load_mod_elidragon_request = true
-load_mod_elidragon_schems = false
+load_mod_elidragon_schems = true
 load_mod_elidragon_skyblock = true
 load_mod_elidragon_tp = true
 load_mod_elidragon_util = true