mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
189 lines
5.8 KiB
Lua
189 lines
5.8 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/
|
|
--]]
|
|
|
|
-- All concommands for stormfox 2
|
|
|
|
local function SendMsg( ply, message )
|
|
message = "[SF2]: " .. message
|
|
if not ply then print( message ) return end
|
|
ply:PrintMessage(HUD_PRINTTALK, message)
|
|
end
|
|
|
|
-- Menu commands
|
|
if CLIENT then
|
|
-- Server menu
|
|
concommand.Add('stormfox2_svmenu', StormFox2.Menu.OpenSV, nil, "Opens SF serverside menu")
|
|
|
|
-- Client menu
|
|
concommand.Add('stormfox2_menu', StormFox2.Menu.Open, nil, "Opens SF clientside menu")
|
|
|
|
-- Controller
|
|
concommand.Add('stormfox2_controller', StormFox2.Menu.OpenController, nil, "Opens SF controller menu")
|
|
else -- Console only
|
|
concommand.Add("stormfox2_settings_reset", function( ply, cmd, args, argStr )
|
|
if ply and IsValid(ply) and not ply:IsListenServerHost() then return end -- Nope, console only
|
|
StormFox2.Setting.Reset()
|
|
end)
|
|
end
|
|
|
|
-- Weather
|
|
concommand.Add("stormfox2_setweather", function(ply, _, arg, _)
|
|
if CLIENT then return end
|
|
-- Check if valid weather
|
|
if #arg < 1 then
|
|
SendMsg(ply, "Weather can't be nil")
|
|
return
|
|
end
|
|
local s = string.upper(string.sub(arg[1],0,1)) .. string.lower(string.sub(arg[1], 2))
|
|
if not StormFox2.Weather.Get(s) then
|
|
SendMsg(ply, "Invalid weather [" .. s .. "]")
|
|
return
|
|
end
|
|
StormFox2.Permission.EditAccess(ply,"StormFox WeatherEdit", function()
|
|
StormFox2.Weather.Set( s, tonumber( arg[2] or "1" ) or 1)
|
|
end)
|
|
end)
|
|
|
|
concommand.Add("stormfox2_setthunder", function(ply, _, _, argS)
|
|
if CLIENT then return end
|
|
StormFox2.Permission.EditAccess(ply,"StormFox WeatherEdit", function()
|
|
local n = tonumber(argS) or (StormFox2.Thunder.IsThundering() and 6 or 0)
|
|
StormFox2.Thunder.SetEnabled( n > 0, n )
|
|
end)
|
|
end)
|
|
|
|
-- Time and Date
|
|
concommand.Add("stormfox2_settime", function(ply, _, _, argS)
|
|
if CLIENT then return end
|
|
-- Check if valid
|
|
if not argS or string.len(argS) < 1 then
|
|
SendMsg(ply, "You need to type an input! Use formats like 'stormfox2_settime 19:00' or 'stormfox2_settime 7:00 PM'")
|
|
return
|
|
end
|
|
local tN = StormFox2.Time.StringToTime(argS)
|
|
if not tN then
|
|
SendMsg(ply, "Invalid input! Use formats like '19:00' or '7:00 PM'")
|
|
return
|
|
end
|
|
StormFox2.Permission.EditAccess(ply,"StormFox WeatherEdit", function()
|
|
StormFox2.Time.Set( argS )
|
|
end)
|
|
end)
|
|
|
|
concommand.Add("stormfox2_setyearday", function(ply, _, _, argStr)
|
|
if CLIENT then return end
|
|
StormFox2.Permission.EditAccess(ply,"StormFox WeatherEdit", function()
|
|
StormFox2.Date.SetYearDay( tonumber(argStr) or 0 )
|
|
end)
|
|
end)
|
|
|
|
concommand.Add("stormfox2_setwind", function(ply, _, _, argStr)
|
|
if CLIENT then return end
|
|
StormFox2.Permission.EditAccess(ply,"StormFox WeatherEdit", function()
|
|
StormFox2.Wind.SetForce( tonumber(argStr) or 0 )
|
|
end)
|
|
end)
|
|
|
|
concommand.Add("stormfox2_setwindangle", function(ply, _, _, argStr)
|
|
if CLIENT then return end
|
|
StormFox2.Permission.EditAccess(ply,"StormFox WeatherEdit", function()
|
|
StormFox2.Wind.SetYaw( tonumber(argStr) or 0 )
|
|
end)
|
|
end)
|
|
|
|
concommand.Add("stormfox2_settemperature", function(ply, _, _, argStr)
|
|
if CLIENT then return end
|
|
local temp = tonumber( string.match(argStr, "-?[%d]+") or "0" ) or 0
|
|
if string.match(argStr, "[fF]") then
|
|
temp = StormFox2.Temperature.Convert("fahrenheit","celsius",temp) or temp
|
|
end
|
|
StormFox2.Permission.EditAccess(ply,"StormFox WeatherEdit", function()
|
|
StormFox2.Temperature.Set( temp )
|
|
end)
|
|
end)
|
|
|
|
local function SetSetting( arg, arg2, ply )
|
|
if not arg or arg == "" then
|
|
SendMsg( ply, "You need to indecate a setting: stormfox2_setting [Setting] [Value]")
|
|
return
|
|
end
|
|
local obj = StormFox2.Setting.GetObject(arg)
|
|
if not obj then
|
|
SendMsg( ply, "Invalid setting: \"" .. tostring( arg ) .. "\"!")
|
|
return
|
|
end
|
|
if not arg2 then
|
|
SendMsg( ply, "You need a value for the setting!")
|
|
return
|
|
end
|
|
obj:SetValue( arg2 )
|
|
SendMsg( ply, tostring( arg ) .. " = " .. tostring( arg2 ))
|
|
end
|
|
|
|
local function AutoComplete(cmd, args)
|
|
args = string.TrimLeft(args)
|
|
local a = string.Explode(" ", args or "")
|
|
if #a < 2 then
|
|
local options = {}
|
|
for _, sName in pairs( StormFox2.Setting.GetAllServer() ) do
|
|
if string.find(string.lower(sName),string.lower(a[1]), nil, true) then
|
|
table.insert(options, "stormfox2_setting " .. sName)
|
|
end
|
|
end
|
|
if #options < 1 then
|
|
return {"stormfox2_setting [No Setting Found!]"}
|
|
elseif #options < 2 and "stormfox2_setting " .. args == options[1] then
|
|
local obj = StormFox2.Setting.GetObject(a[1])
|
|
if not obj then
|
|
return {"stormfox2_setting [Invalid Setting!]"}
|
|
end
|
|
return {"stormfox2_setting " .. a[1] .. " [" .. obj.type .. "]"}
|
|
end
|
|
return options
|
|
elseif not a[1] or string.TrimLeft(a[1]) == "" then
|
|
return {"stormfox2_setting [Setting] [Value]"}
|
|
else
|
|
local obj = StormFox2.Setting.GetObject(a[1])
|
|
if not obj then
|
|
return {"stormfox2_setting [Invalid Setting!]"}
|
|
else
|
|
return {"stormfox2_setting " .. a[1] .. " [" .. obj.type .. "]"}
|
|
end
|
|
end
|
|
end
|
|
|
|
concommand.Add("stormfox2_setting", function(ply, _, _, argStr)
|
|
if CLIENT then return end
|
|
StormFox2.Permission.EditAccess(ply,"StormFox Settings", function()
|
|
local a = string.Explode(" ", argStr, false)
|
|
SetSetting(a[1],a[2])
|
|
end)
|
|
end, AutoComplete)
|
|
|
|
-- Forces the settings to save.
|
|
concommand.Add("stormfox2_settings_save", function(ply, _, _, _)
|
|
if CLIENT then return end
|
|
StormFox2.Permission.EditAccess(ply,"StormFox Settings", function()
|
|
SendMsg( ply, "Force saved settings to data/" .. StormFox2.Setting.GetSaveFile())
|
|
StormFox2.Setting.ForceSave()
|
|
end)
|
|
end)
|
|
|
|
-- Debug commands
|
|
if true then return end
|
|
concommand.Add("stormfox2_debug_spawnice", function(ply)
|
|
if ply and not ply:IsListenServerHost() then return end
|
|
SpawnIce()
|
|
end, nil, nil)
|
|
|
|
concommand.Add("stormfox2_debug_removeice", function(ply)
|
|
if ply and not ply:IsListenServerHost() then return end
|
|
RemoveIce()
|
|
end, nil, nil) |