Further tweaking of the skyrock and bedrock layers, fixes in lighting
and another refactoring with a first cut of a multi_map class and API
This commit is contained in:
parent
a626ec05a1
commit
f643ce0700
27
init.lua
27
init.lua
|
@ -1,11 +1,38 @@
|
||||||
|
multi_map = {}
|
||||||
|
|
||||||
|
multi_map.number_of_layers = 32
|
||||||
|
multi_map.day_light = 15
|
||||||
|
multi_map.night_light = 0
|
||||||
|
multi_map.bedrock = "multi_map:bedrock"
|
||||||
|
multi_map.skyrock = "multi_map:skyrock"
|
||||||
|
multi_map.water_height = 0
|
||||||
|
multi_map.seed = 835726
|
||||||
|
|
||||||
|
multi_map.layer_height = 65535 / multi_map.number_of_layers
|
||||||
|
multi_map.half_layer_height = multi_map.layer_height / 2
|
||||||
|
|
||||||
|
function multi_map.get_current_layer(y)
|
||||||
|
for l = (multi_map.number_of_layers / -2), (multi_map.number_of_layers / 2) do
|
||||||
|
if y >= (l * layer_height) - half_layer_height and y < (l * layer_height) + half_layer_height then
|
||||||
|
return l
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function multi_map.get_offset_y(y)
|
||||||
|
return y - (multi_map.get_current_layer(y) * multi_map.layer_height)
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_node("multi_map:skyrock", {
|
minetest.register_node("multi_map:skyrock", {
|
||||||
description = "Multi Map Impenetrable Skyblock",
|
description = "Multi Map Impenetrable Skyblock",
|
||||||
drawtype = "airlike",
|
drawtype = "airlike",
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
walkable = true,
|
walkable = true,
|
||||||
pointable = false,
|
pointable = false,
|
||||||
diggable = false,
|
diggable = false,
|
||||||
climbable = false,
|
climbable = false,
|
||||||
|
paramtype = "light",
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("multi_map:bedrock", {
|
minetest.register_node("multi_map:bedrock", {
|
||||||
|
|
17
mapgen.lua
17
mapgen.lua
|
@ -202,6 +202,7 @@ minetest.register_on_generated(function(minp, maxp)
|
||||||
local nixz = 1
|
local nixz = 1
|
||||||
|
|
||||||
local worm_started = false
|
local worm_started = false
|
||||||
|
local supress_shadow = false
|
||||||
|
|
||||||
for z = minp.z, maxp.z do
|
for z = minp.z, maxp.z do
|
||||||
local niz
|
local niz
|
||||||
|
@ -216,10 +217,11 @@ minetest.register_on_generated(function(minp, maxp)
|
||||||
height = height + layers[current_layer].mountain_peak_2dmap[nixz]
|
height = height + layers[current_layer].mountain_peak_2dmap[nixz]
|
||||||
end
|
end
|
||||||
|
|
||||||
if (layer_height * current_layer) - half_layer_height <= y and y <= (layer_height * current_layer) - half_layer_height + (sidelen / 2) then
|
if (layer_height * current_layer) + half_layer_height < y and y <= (layer_height * current_layer) + half_layer_height + sidelen then
|
||||||
vm_data[vi] = c_bedrock
|
vm_data[vi] = c_bedrock
|
||||||
elseif (layer_height * current_layer) + half_layer_height - (sidelen * 5) <= y and y <= (layer_height * current_layer) + half_layer_height then
|
elseif (layer_height * current_layer) + half_layer_height - (sidelen * 2) <= y and y <= (layer_height * current_layer) + half_layer_height then
|
||||||
vm_data[vi] = c_skyrock
|
vm_data[vi] = c_skyrock
|
||||||
|
supress_shadow = true
|
||||||
elseif y <= height + (layer_height * current_layer) then
|
elseif y <= height + (layer_height * current_layer) then
|
||||||
-- if math.abs(cave_3dmap[nixyz]) < 10 then -- + (y / 400) then
|
-- if math.abs(cave_3dmap[nixyz]) < 10 then -- + (y / 400) then
|
||||||
vm_data[vi] = c_stone
|
vm_data[vi] = c_stone
|
||||||
|
@ -244,10 +246,13 @@ minetest.register_on_generated(function(minp, maxp)
|
||||||
nixz = nixz + sidelen
|
nixz = nixz + sidelen
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
vm:set_data(vm_data)
|
vm:set_data(vm_data)
|
||||||
vm:set_lighting({day=settings.day_light, night=settings.night_light})
|
|
||||||
vm:update_liquids()
|
vm:update_liquids()
|
||||||
vm:calc_lighting(false)
|
if supress_shadow then
|
||||||
vm:write_to_map()
|
vm:calc_lighting(false)
|
||||||
|
vm:write_to_map(false)
|
||||||
|
else
|
||||||
|
vm:calc_lighting()
|
||||||
|
vm:write_to_map()
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
Loading…
Reference in New Issue