mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
87 lines
2.6 KiB
Lua
87 lines
2.6 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
|
|
|
|
StormFox2.Setting.AddSV("darken_2dskybox", false, nil, "Effect")
|
|
|
|
local convar = GetConVar("sv_skyname")
|
|
local mat_2dBox = "skybox/" .. convar:GetString()
|
|
local last_f = 1
|
|
local function OnChange( str )
|
|
StormFox2.Map.Set2DSkyBoxDarkness( last_f )
|
|
end
|
|
|
|
cvars.RemoveChangeCallback("sv_skyname", "sf_skynamehook")
|
|
cvars.AddChangeCallback( "sv_skyname", OnChange, "sf_skynamehook" )
|
|
|
|
local t = {"bk", "dn", "ft", "lf", "rt", "up"}
|
|
|
|
---Sets the 2D skybox darkness. Mostly used for internal stuff.
|
|
---@param f number
|
|
---@param bRemember boolean
|
|
---@param bDark boolean
|
|
function StormFox2.Map.Set2DSkyBoxDarkness( f, bRemember, bDark )
|
|
if bRemember then
|
|
last_f = f
|
|
end
|
|
local sky = convar:GetString()
|
|
if sky == "painted" then return end
|
|
if bDark == nil then
|
|
bDark = StormFox2.Setting.GetCache("darken_2dskybox", false)
|
|
end
|
|
if not StormFox2.Setting.GetCache("enable_skybox", true) or not StormFox2.Setting.SFEnabled() or not bDark then
|
|
f = 1
|
|
end
|
|
mat_2dBox = "skybox/" .. sky
|
|
local vec = Vector( f, f, f)
|
|
|
|
for k,v in ipairs( t ) do
|
|
local m = Material(mat_2dBox .. v)
|
|
if m:IsError() then continue end
|
|
m:SetVector("$color", vec)
|
|
m:SetInt("$nofog", 1)
|
|
m:SetInt("$ignorez", 1)
|
|
end
|
|
end
|
|
|
|
StormFox2.Setting.Callback("darken_2dskybox", function(vVar)
|
|
StormFox2.Map.Set2DSkyBoxDarkness( last_f, false, vVar )
|
|
end, "darken_2dskybox")
|
|
|
|
local function SkyThink(b, str)
|
|
if not StormFox2.Setting.GetCache("enable_skybox", true) or not StormFox2.Setting.SFEnabled() then return end
|
|
if b == nil then
|
|
b = StormFox2.Setting.GetCache("use_2dskybox", false)
|
|
end
|
|
if not b then
|
|
return RunConsoleCommand("sv_skyname", "painted")
|
|
end
|
|
local s = str or StormFox2.Setting.GetCache("overwrite_2dskybox", "")
|
|
if s == "" then
|
|
local lS = 0
|
|
if StormFox2.Sky and StormFox2.Sky.GetLastStamp then -- Something happen
|
|
lS = StormFox2.Sky.GetLastStamp()
|
|
end
|
|
local sky_options = StormFox2.Weather.GetCurrent():Get("skyBox", lS)
|
|
s = (table.Random(sky_options))
|
|
else
|
|
StormFox2.Map.Set2DSkyBoxDarkness( last_f )
|
|
end
|
|
RunConsoleCommand("sv_skyname", s)
|
|
end
|
|
|
|
StormFox2.Setting.Callback("use_2dskybox",SkyThink,"2dskybox_enable")
|
|
StormFox2.Setting.Callback("overwrite_2dskybox",function(str) SkyThink(nil, str) end,"2dskybox_enable2")
|
|
|
|
hook.Add("StormFox2.weather.postchange", "StormFox2.weather.set2dsky", function( _ )
|
|
if not StormFox2.Setting.GetCache("use_2dskybox", false) then return end
|
|
SkyThink()
|
|
end) |