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)
if not player then
return
end
local player_meta = player:get_meta()
local player_time = player_meta:get_int('everness_timeofday')
-- 0 not defined (for player meta)
@ -728,6 +732,10 @@ minetest.register_globalstep(function(dtime)
local should_flip_data = should_flip(player)
if not should_flip_data then
should_flip_data = {}
end
-- flip sun/moon when morning/afternoon
if player_biome_name == biome_name and should_flip_data.should_flip then
if skybox_defs[biome_name] then
@ -738,7 +746,9 @@ minetest.register_globalstep(function(dtime)
sun_params.texture = sun_params.texture .. '^[transformFY'
end
player:set_sun(sun_params)
if player then
player:set_sun(sun_params)
end
end
-- if skybox_defs[biome_name].moon_parameters then
@ -761,40 +771,70 @@ minetest.register_globalstep(function(dtime)
sun_params.texture = sun_params.texture .. '^[transformFY'
end
player:set_sun(sun_params)
if player then
player:set_sun(sun_params)
end
else
player:set_sun()
if player then
player:set_sun()
end
end
if skybox_defs[biome_name].moon_parameters then
player:set_moon(skybox_defs[biome_name].moon_parameters)
if player then
player:set_moon(skybox_defs[biome_name].moon_parameters)
end
else
player:set_moon()
if player then
player:set_moon()
end
end
if skybox_defs[biome_name].star_parameters then
player:set_stars(skybox_defs[biome_name].star_parameters)
if player then
player:set_stars(skybox_defs[biome_name].star_parameters)
end
else
player:set_stars()
if player then
player:set_stars()
end
end
if skybox_defs[biome_name].sky_parameters then
player:set_sky(skybox_defs[biome_name].sky_parameters)
if player then
player:set_sky(skybox_defs[biome_name].sky_parameters)
end
else
player:set_sky()
if player then
player:set_sky()
end
end
if skybox_defs[biome_name].cloud_parameters then
player:set_clouds(skybox_defs[biome_name].cloud_parameters)
if player then
player:set_clouds(skybox_defs[biome_name].cloud_parameters)
end
else
player:set_clouds()
if player then
player:set_clouds()
end
end
else
player:set_sun()
player:set_moon()
player:set_stars()
player:set_sky()
player:set_clouds()
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
@ -802,35 +842,47 @@ minetest.register_globalstep(function(dtime)
-- hide sun, moon, stars ... underground
player_meta:set_int('everness_is_underground', 1)
player:set_sun({
visible = false,
sunrise_visible = false
})
if player then
player:set_sun({
visible = false,
sunrise_visible = false
})
end
player:set_moon({
visible = false
})
if player then
player:set_moon({
visible = false
})
end
player:set_stars({
visible = false
})
if player then
player:set_stars({
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
-- show sun, moon, stars ... underground
player_meta:set_int('everness_is_underground', 0)
player:set_sun({
visible = true
})
if player then
player:set_sun({
visible = true
})
end
player:set_moon({
visible = true
})
if player then
player:set_moon({
visible = true
})
end
player:set_stars({
visible = true,
sunrise_visible = true
})
if player then
player:set_stars({
visible = true,
sunrise_visible = true
})
end
end
end