// ReSharper disable CheckNamespace // ReSharper disable InconsistentNaming using System; using System.CodeDom.Compiler; using System.IO; using System.Text; using MonoMod; using LooseDBTables; using UnityEngine; namespace DB; [MonoModIgnore] [GeneratedCode("LooseDBTables.GeneratePatches", "1.0.0.0")] public class WindowPositionIDEnum { public static extern bool LoadFromFile(string filename); public static extern void DumpToFile(string filename); protected static WindowPositionTableRecord[] records; } [GeneratedCode("LooseDBTables.GeneratePatches", "1.0.0.0")] [Serializable] public class SerializableWindowPositionTableRecord { public System.Int32 EnumValue; public System.String EnumName; public System.String Name; } [GeneratedCode("LooseDBTables.GeneratePatches", "1.0.0.0")] public class patch_WindowPositionIDEnum : WindowPositionIDEnum { public new static bool LoadFromFile(string filename) { if (!File.Exists(filename)) { return false; } var table = JsonUtility.FromJson>(File.ReadAllText(filename)); try { if (table.records.Length != records.Length) { Debug.LogError($"Count read error: {filename}"); return false; } var src = table.records; var dst = records; for (var i = 0; i < table.records.Length; i++) { dst[i] = new WindowPositionTableRecord { EnumValue = (System.Int32)src[i].EnumValue, EnumName = (System.String)src[i].EnumName, Name = (System.String)src[i].Name, }; } } catch { Debug.LogError($"File read error: {filename}"); return false; } return true; } public new static void DumpToFile(string filename) { var table = new Table() { records = new SerializableWindowPositionTableRecord[records.Length] }; var src = records; var dst = table.records; for (var i = 0; i < records.Length; i++) { dst[i] = new SerializableWindowPositionTableRecord { EnumValue = (System.Int32)src[i].EnumValue, EnumName = (System.String)src[i].EnumName, Name = (System.String)src[i].Name, }; } File.WriteAllText(filename, JsonUtility.ToJson(table, true), Encoding.UTF8); } }