diff --git a/Game.Server/World.cs b/Game.Server/World.cs index da78fbf39..89ebb19f7 100644 --- a/Game.Server/World.cs +++ b/Game.Server/World.cs @@ -4,6 +4,7 @@ using Source.Common; using Source.Common.Commands; +using Source.Common.Mathematics; using Source.Engine; using System.Numerics; @@ -103,6 +104,27 @@ public override void Precache() { g_iszFuncBrushClassname = "func_brush"; } + public override bool KeyValue(ReadOnlySpan keyName, ReadOnlySpan value) { + if (FStrEq(keyName, "skyname")) { + ConVarRef skyname = new("sv_skyname"); + skyname.SetValue(value); + } + else if (FStrEq(keyName, "world_mins")) { + Vector3 vec = default; + UTIL_StringToVector(vec.Base(), value); + WorldMins = vec; + } + else if (FStrEq(keyName, "world_maxs")) { + Vector3 vec = default; + UTIL_StringToVector(vec.Base(), value); + WorldMaxs = vec; + } + else + return base.KeyValue(keyName, value); + + return true; + } + public static ReadOnlySpan GetDefaultLightstyleString(int styleIndex) => styleIndex < g_DefaultLightstyles.Length ? g_DefaultLightstyles[styleIndex] : "m"; static readonly string[] g_DefaultLightstyles = [ // 0 normal