mirror of
https://git.minetest.land/Mineclonia/Mineclonia.git
synced 2024-12-01 02:53:01 +00:00
Fix End lighting. Kinda
This commit is contained in:
parent
d9aa5f97f6
commit
7ed2adec3f
2 changed files with 29 additions and 24 deletions
|
@ -565,8 +565,10 @@ local function register_dimension_biomes()
|
||||||
node_filler = "air",
|
node_filler = "air",
|
||||||
node_water = "air",
|
node_water = "air",
|
||||||
node_river_water = "air",
|
node_river_water = "air",
|
||||||
|
-- FIXME: For some reason the End stops generating early if this constant is not added.
|
||||||
|
-- Figure out why.
|
||||||
y_min = mcl_vars.mg_end_min,
|
y_min = mcl_vars.mg_end_min,
|
||||||
y_max = mcl_vars.mg_end_max,
|
y_max = mcl_vars.mg_end_max + 80,
|
||||||
heat_point = 50,
|
heat_point = 50,
|
||||||
humidity_point = 50,
|
humidity_point = 50,
|
||||||
})
|
})
|
||||||
|
@ -958,7 +960,7 @@ local function register_dimension_ores()
|
||||||
ore = "mcl_end:end_stone",
|
ore = "mcl_end:end_stone",
|
||||||
wherein = {"air"},
|
wherein = {"air"},
|
||||||
y_min = mcl_vars.mg_end_min+64,
|
y_min = mcl_vars.mg_end_min+64,
|
||||||
y_max = mcl_vars.mg_end_min+94,
|
y_max = mcl_vars.mg_end_min+80,
|
||||||
column_height_min = 6,
|
column_height_min = 6,
|
||||||
column_height_max = 7,
|
column_height_max = 7,
|
||||||
column_midpoint_factor = 0.0,
|
column_midpoint_factor = 0.0,
|
||||||
|
@ -978,7 +980,7 @@ local function register_dimension_ores()
|
||||||
ore = "mcl_end:end_stone",
|
ore = "mcl_end:end_stone",
|
||||||
wherein = {"air"},
|
wherein = {"air"},
|
||||||
y_min = mcl_vars.mg_end_min+64,
|
y_min = mcl_vars.mg_end_min+64,
|
||||||
y_max = mcl_vars.mg_end_min+94,
|
y_max = mcl_vars.mg_end_min+80,
|
||||||
column_height_min = 4,
|
column_height_min = 4,
|
||||||
column_height_max = 4,
|
column_height_max = 4,
|
||||||
column_midpoint_factor = 0.0,
|
column_midpoint_factor = 0.0,
|
||||||
|
|
|
@ -1320,15 +1320,21 @@ minetest.register_on_generated(function(minp, maxp)
|
||||||
elseif mcl_util.is_in_void({x=x,y=y,z=z}) then
|
elseif mcl_util.is_in_void({x=x,y=y,z=z}) then
|
||||||
data[p_pos] = c_void
|
data[p_pos] = c_void
|
||||||
lvm_used = true
|
lvm_used = true
|
||||||
|
-- Realm barrier between the Overworld void and the End
|
||||||
|
elseif y >= mcl_vars.mg_realm_barrier_overworld_end_min and y <= mcl_vars.mg_realm_barrier_overworld_end_max then
|
||||||
|
data[p_pos] = c_realm_barrier
|
||||||
|
lvm_used = true
|
||||||
|
-- Flat Nether
|
||||||
|
elseif mg_name == "flat" and y >= mcl_vars.mg_bedrock_nether_bottom_max + 4 and y <= mcl_vars.mg_bedrock_nether_bottom_max + 52 then
|
||||||
|
data[p_pos] = c_air
|
||||||
|
lvm_used = true
|
||||||
-- Big lava seas by replacing air below a certain height
|
-- Big lava seas by replacing air below a certain height
|
||||||
elseif mcl_vars.mg_lava and data[p_pos] == c_air then
|
elseif mcl_vars.mg_lava and data[p_pos] == c_air and y <= mcl_vars.mg_lava_overworld_max and y >= mcl_vars.mg_overworld_min then
|
||||||
if y <= mcl_vars.mg_lava_overworld_max and y >= mcl_vars.mg_overworld_min then
|
data[p_pos] = c_lava
|
||||||
data[p_pos] = c_lava
|
lvm_used = true
|
||||||
lvm_used = true
|
elseif mcl_vars.mg_lava and data[p_pos] == c_air and y <= mcl_vars.mg_lava_nether_max and y >= mcl_vars.mg_nether_min then
|
||||||
elseif y <= mcl_vars.mg_lava_nether_max and y >= mcl_vars.mg_nether_min then
|
data[p_pos] = c_nether_lava
|
||||||
data[p_pos] = c_nether_lava
|
lvm_used = true
|
||||||
lvm_used = true
|
|
||||||
end
|
|
||||||
-- Water in the Nether or End? No way!
|
-- Water in the Nether or End? No way!
|
||||||
elseif data[p_pos] == c_water then
|
elseif data[p_pos] == c_water then
|
||||||
if y <= mcl_vars.mg_nether_max and y >= mcl_vars.mg_nether_min then
|
if y <= mcl_vars.mg_nether_max and y >= mcl_vars.mg_nether_min then
|
||||||
|
@ -1341,14 +1347,6 @@ minetest.register_on_generated(function(minp, maxp)
|
||||||
data[p_pos] = c_air
|
data[p_pos] = c_air
|
||||||
lvm_used = true
|
lvm_used = true
|
||||||
end
|
end
|
||||||
-- Realm barrier between the Overworld void and the End
|
|
||||||
elseif y >= mcl_vars.mg_realm_barrier_overworld_end_min and y <= mcl_vars.mg_realm_barrier_overworld_end_max then
|
|
||||||
data[p_pos] = c_realm_barrier
|
|
||||||
lvm_used = true
|
|
||||||
-- Flat Nether
|
|
||||||
elseif mg_name == "flat" and y >= mcl_vars.mg_bedrock_nether_bottom_max + 4 and y <= mcl_vars.mg_bedrock_nether_bottom_max + 52 then
|
|
||||||
data[p_pos] = c_air
|
|
||||||
lvm_used = true
|
|
||||||
-- Nether and End support for v6 because v6 does not support the biomes API
|
-- Nether and End support for v6 because v6 does not support the biomes API
|
||||||
elseif mg_name == "v6" then
|
elseif mg_name == "v6" then
|
||||||
if y <= mcl_vars.mg_nether_max and y >= mcl_vars.mg_nether_min then
|
if y <= mcl_vars.mg_nether_max and y >= mcl_vars.mg_nether_min then
|
||||||
|
@ -1387,15 +1385,20 @@ minetest.register_on_generated(function(minp, maxp)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Set high light level in the End. This is very hacky and messes up the shadows below the End islands.
|
local shadow
|
||||||
-- FIXME: Find a better way to do light.
|
-- Set sun light level in the End
|
||||||
if minp.y >= mcl_vars.mg_end_min and maxp.y <= mcl_vars.mg_end_max then
|
-- -26912 is at a mapchunk border
|
||||||
vm:set_lighting({day=14, night=14})
|
if minp.y >= -26912 and maxp.y <= mcl_vars.mg_end_max then
|
||||||
|
vm:set_lighting({day=15, night=15})
|
||||||
|
lvm_used = true
|
||||||
|
end
|
||||||
|
if minp.y >= mcl_vars.mg_end_min and maxp.y <= -26911 then
|
||||||
|
shadow = false
|
||||||
lvm_used = true
|
lvm_used = true
|
||||||
end
|
end
|
||||||
if lvm_used then
|
if lvm_used then
|
||||||
vm:set_data(data)
|
vm:set_data(data)
|
||||||
vm:calc_lighting()
|
vm:calc_lighting(nil, nil, shadow)
|
||||||
vm:update_liquids()
|
vm:update_liquids()
|
||||||
vm:write_to_map()
|
vm:write_to_map()
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue