98 lines
2.9 KiB
Lua
98 lines
2.9 KiB
Lua
--Version 0.2
|
|
--by emperor_genshin
|
|
--modified for ESM game by: maikerumine
|
|
--https://forum.minetest.net/viewtopic.php?f=9&t=13775&hilit=[mod]skybox
|
|
|
|
|
|
pos = {x=0, y=0, z=0}
|
|
|
|
local space = 900 --value for space, change the value to however you like.
|
|
local cave = -40 --value for cave, change the value to however you like.
|
|
|
|
--The skybox for space, feel free to change it to however you like.
|
|
local spaceskybox = {
|
|
"sky_pos_y.png",
|
|
"sky_neg_y.png",
|
|
"sky_pos_z.png",
|
|
"sky_neg_z.png",
|
|
"sky_neg_x.png",
|
|
"sky_pos_x.png",
|
|
}
|
|
local caveskybox = {
|
|
"black.png",
|
|
"black.png",
|
|
"black.png",
|
|
"black.png",
|
|
"black.png",
|
|
"black.png",
|
|
}
|
|
|
|
local time = 0
|
|
--minetest.after(1, function()
|
|
minetest.register_globalstep(function(dtime)
|
|
time = time + dtime
|
|
if time > 0 then for _, player in ipairs(minetest.get_connected_players()) do
|
|
time = 0
|
|
|
|
local name = player:get_player_name()
|
|
--local sky = player:get_attribute("skybox:skybox")--ADDED SKYBOX
|
|
local pos = player:getpos()
|
|
|
|
--If the player has reached Space
|
|
if minetest.get_player_by_name(name) and pos.y >= space then
|
|
player:set_physics_override(1, 0.6, 0.2,false,false) -- speed, jump, gravity
|
|
player:set_sky({}, "skybox", spaceskybox) -- Sets skybox
|
|
--===================================
|
|
--===================================
|
|
--===================================
|
|
|
|
--===================================
|
|
--===================================
|
|
--===================================
|
|
--If the player is on Earth
|
|
elseif minetest.get_player_by_name(name) and pos.y < space then
|
|
player:set_physics_override(1, 1, 1,true,true) -- speed, jump, gravity [default]
|
|
player:set_sky({}, "regular", {}) -- Sets skybox, in this case it sets the skybox to it's default setting if and only if the player's Y value is less than the value of space.
|
|
--player:set_sky(color, "plain", nil) --problem updating color
|
|
--player:set_sky(color, "regular", nil) --seems to work but weather color is stuck
|
|
--skybox.set(player, 5)--ADDED SKYBOX
|
|
--skycolor.update_sky_color()
|
|
|
|
|
|
|
|
|
|
--If the player has reached Cave
|
|
if minetest.get_player_by_name(name) and pos.y <=cave then
|
|
player:set_physics_override(1, 1, 1.2,true,true) -- speed, jump, gravity
|
|
player:set_sky({}, "cavebox", caveskybox) -- Sets skybox
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
--end)
|
|
|
|
|
|
--[[
|
|
-- Update sky color. If players not specified update sky for all players.
|
|
update_sky_color = function(players)
|
|
local color = skycolor.current_sky_layer_color()
|
|
if (color == nil) then
|
|
skycolor.active = false
|
|
skycolor.set_default_sky()
|
|
return
|
|
end
|
|
|
|
players = skycolor.utils.get_players(players)
|
|
for _, player in ipairs(players) do
|
|
player:set_sky(color, "plain", nil)
|
|
end
|
|
end,
|
|
]]
|
|
minetest.register_on_leaveplayer(function(player)
|
|
local name = player:get_player_name()
|
|
if name then
|
|
player:set_sky({}, "regular", {})
|
|
end
|
|
end)
|