Add excessive checks for player skybox
This commit is contained in:
parent
df520f8a39
commit
c70d5956f7
124
skybox.lua
124
skybox.lua
|
@ -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
|
||||
|
||||
|
|
Ŝarĝante…
Reference in New Issue