// 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 ButtonIDEnum { public static extern bool LoadFromFile(string filename); public static extern void DumpToFile(string filename); protected static ButtonTableRecord[] records; } [GeneratedCode("LooseDBTables.GeneratePatches", "1.0.0.0")] [Serializable] public class SerializableButtonTableRecord { public System.Int32 EnumValue; public System.String EnumName; public System.Int32 Kind; public System.Int32 Type; public System.Int32 Name; } [GeneratedCode("LooseDBTables.GeneratePatches", "1.0.0.0")] public class patch_ButtonIDEnum : ButtonIDEnum { 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 ButtonTableRecord { EnumValue = (System.Int32)src[i].EnumValue, EnumName = (System.String)src[i].EnumName, Kind = (DB.ButtonKindID)src[i].Kind, Type = (DB.ButtonTypeID)src[i].Type, Name = (System.Int32)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 SerializableButtonTableRecord[records.Length] }; var src = records; var dst = table.records; for (var i = 0; i < records.Length; i++) { dst[i] = new SerializableButtonTableRecord { EnumValue = (System.Int32)src[i].EnumValue, EnumName = (System.String)src[i].EnumName, Kind = (int)src[i].Kind, Type = (int)src[i].Type, Name = (System.Int32)src[i].Name, }; } File.WriteAllText(filename, JsonUtility.ToJson(table, true), Encoding.UTF8); } }