Add excessive checks for player skybox

This commit is contained in:
Juraj Vajda 2023-04-04 13:18:46 -04:00
parent df520f8a39
commit c70d5956f7

View File

@ -682,6 +682,10 @@ local skybox_defs = {
} }
local function should_flip(player) local function should_flip(player)
if not player then
return
end
local player_meta = player:get_meta() local player_meta = player:get_meta()
local player_time = player_meta:get_int('everness_timeofday') local player_time = player_meta:get_int('everness_timeofday')
-- 0 not defined (for player meta) -- 0 not defined (for player meta)
@ -728,6 +732,10 @@ minetest.register_globalstep(function(dtime)
local should_flip_data = should_flip(player) local should_flip_data = should_flip(player)
if not should_flip_data then
should_flip_data = {}
end
-- flip sun/moon when morning/afternoon -- flip sun/moon when morning/afternoon
if player_biome_name == biome_name and should_flip_data.should_flip then if player_biome_name == biome_name and should_flip_data.should_flip then
if skybox_defs[biome_name] then if skybox_defs[biome_name] then
@ -738,8 +746,10 @@ minetest.register_globalstep(function(dtime)
sun_params.texture = sun_params.texture .. '^[transformFY' sun_params.texture = sun_params.texture .. '^[transformFY'
end end
if player then
player:set_sun(sun_params) player:set_sun(sun_params)
end end
end
-- if skybox_defs[biome_name].moon_parameters then -- if skybox_defs[biome_name].moon_parameters then
-- player:set_moon(skybox_defs[biome_name].moon_parameters) -- player:set_moon(skybox_defs[biome_name].moon_parameters)
@ -761,78 +771,120 @@ minetest.register_globalstep(function(dtime)
sun_params.texture = sun_params.texture .. '^[transformFY' sun_params.texture = sun_params.texture .. '^[transformFY'
end end
if player then
player:set_sun(sun_params) player:set_sun(sun_params)
end
else else
if player then
player:set_sun() player:set_sun()
end end
end
if skybox_defs[biome_name].moon_parameters then if skybox_defs[biome_name].moon_parameters then
if player then
player:set_moon(skybox_defs[biome_name].moon_parameters) player:set_moon(skybox_defs[biome_name].moon_parameters)
end
else else
if player then
player:set_moon() player:set_moon()
end end
end
if skybox_defs[biome_name].star_parameters then if skybox_defs[biome_name].star_parameters then
if player then
player:set_stars(skybox_defs[biome_name].star_parameters) player:set_stars(skybox_defs[biome_name].star_parameters)
end
else else
if player then
player:set_stars() player:set_stars()
end end
end
if skybox_defs[biome_name].sky_parameters then if skybox_defs[biome_name].sky_parameters then
if player then
player:set_sky(skybox_defs[biome_name].sky_parameters) player:set_sky(skybox_defs[biome_name].sky_parameters)
end
else else
if player then
player:set_sky() player:set_sky()
end end
end
if skybox_defs[biome_name].cloud_parameters then if skybox_defs[biome_name].cloud_parameters then
if player then
player:set_clouds(skybox_defs[biome_name].cloud_parameters) player:set_clouds(skybox_defs[biome_name].cloud_parameters)
else
player:set_clouds()
end end
else else
player:set_sun() if player then
player:set_moon()
player:set_stars()
player:set_sky()
player:set_clouds() player:set_clouds()
end end
end end
else
if player then
player:set_sun()
end
if player then
player:set_moon()
end
if player then
player:set_stars()
end
if player then
player:set_sky()
end
if player then
player:set_clouds()
end
end
end
if player_pos.y <= -256 and is_underground == 0 or (is_underground ~= 0 and player_meta:get_string('everness_biome_name') ~= biome_name) then if player_pos.y <= -256 and is_underground == 0 or (is_underground ~= 0 and player_meta:get_string('everness_biome_name') ~= biome_name) then
-- hide sun, moon, stars ... underground -- hide sun, moon, stars ... underground
player_meta:set_int('everness_is_underground', 1) player_meta:set_int('everness_is_underground', 1)
if player then
player:set_sun({ player:set_sun({
visible = false, visible = false,
sunrise_visible = false sunrise_visible = false
}) })
end
if player then
player:set_moon({ player:set_moon({
visible = false visible = false
}) })
end
if player then
player:set_stars({ player:set_stars({
visible = false visible = false
}) })
end
elseif player_pos.y > -256 and is_underground ~= 0 or (is_underground == 0 and player_meta:get_string('everness_biome_name') ~= biome_name) then elseif player_pos.y > -256 and is_underground ~= 0 or (is_underground == 0 and player_meta:get_string('everness_biome_name') ~= biome_name) then
-- show sun, moon, stars ... underground -- show sun, moon, stars ... underground
player_meta:set_int('everness_is_underground', 0) player_meta:set_int('everness_is_underground', 0)
if player then
player:set_sun({ player:set_sun({
visible = true visible = true
}) })
end
if player then
player:set_moon({ player:set_moon({
visible = true visible = true
}) })
end
if player then
player:set_stars({ player:set_stars({
visible = true, visible = true,
sunrise_visible = true sunrise_visible = true
}) })
end end
end end
end
timer = 0 timer = 0
end end