Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard.AutoTest/LitJsonExtention.cs
gamer147 4491c6c7f3 feat(battle-engine): full Unity primitive/runtime surface + game extension copies
Grows Vector2/3, Mathf, Color, Quaternion, GameObject, Transform, Camera, Material,
ParticleSystem, Rect, Bounds, Time to the surface the engine references; adds Input/
Random/Resources statics + full KeyCode enum. Copies the verbatim extension files that
collapse thousands of CS1061s at once (ContentKeywordExt, JsonData/LitJson extensions,
EventExtension.Call, GameObjectExtension(s)). 26.5k -> 15.9k errors; residual now
dominated by god-object member surface (GameMgr/UIManager/EffectMgr/Vfx*).
2026-06-05 20:22:43 -04:00

126 lines
2.5 KiB
C#

using System.Collections.Generic;
using System.Linq;
using LitJson;
namespace Wizard.AutoTest;
public static class LitJsonExtention
{
public static bool? ToBooleanOrNull(this JsonData jsonData, string key)
{
if (!jsonData.HasKey(key))
{
return null;
}
if (!jsonData[key].IsBoolean)
{
return null;
}
return jsonData[key].ToBoolean();
}
public static bool ToBooleanOrDefault(this JsonData jsonData, string key, bool defaultBoolean)
{
bool? flag = jsonData.ToBooleanOrNull(key);
if (!flag.HasValue)
{
return defaultBoolean;
}
return flag.Value;
}
public static int? ToIntOrNull(this JsonData jsonData, string key)
{
if (!jsonData.HasKey(key))
{
return null;
}
if (!jsonData[key].IsInt)
{
return null;
}
return jsonData[key].ToInt();
}
public static int ToIntOrDefault(this JsonData jsonData, string key, int defaultInt)
{
int? num = jsonData.ToIntOrNull(key);
if (!num.HasValue)
{
return defaultInt;
}
return num.Value;
}
public static long? ToLongOrNull(this JsonData jsonData, string key)
{
if (!jsonData.HasKey(key))
{
return null;
}
if (!jsonData[key].IsLong && !jsonData[key].IsInt)
{
return null;
}
return jsonData[key].ToLong();
}
public static long ToLongOrDefault(this JsonData jsonData, string key, int defaultLong)
{
long? num = jsonData.ToLongOrNull(key);
if (!num.HasValue)
{
return defaultLong;
}
return num.Value;
}
public static string ToStringOrNull(this JsonData jsonData, string key)
{
if (!jsonData.HasKey(key))
{
return null;
}
if (!jsonData[key].IsString)
{
return null;
}
return jsonData[key].ToString();
}
public static string ToStringOrDefault(this JsonData jsonData, string key, string defaultString)
{
return jsonData.ToStringOrNull(key) ?? defaultString;
}
public static JsonData ToObjectOrNull(this JsonData jsonData, string key)
{
if (!jsonData.HasKey(key))
{
return null;
}
if (!jsonData[key].IsObject)
{
return null;
}
return jsonData[key];
}
public static IEnumerable<JsonData> ToJsonDataCollection(this JsonData jsonData, string key)
{
if (jsonData.HasKey(key) && jsonData[key].IsArray)
{
JsonData arrayJsonData = jsonData[key];
for (int i = 0; i < arrayJsonData.Count; i++)
{
yield return arrayJsonData[i];
}
}
}
public static bool HasKey(this JsonData jsonData, string key)
{
return jsonData.Keys.Any((string k) => k == key);
}
}