mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 05:43:46 +03:00
Upload
This commit is contained in:
87
lua/stormfox2/framework/sv_2dskybox.lua
Normal file
87
lua/stormfox2/framework/sv_2dskybox.lua
Normal file
@@ -0,0 +1,87 @@
|
||||
--[[
|
||||
| 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)
|
||||
Reference in New Issue
Block a user