// #nullable enable namespace GFramework.Game.Config.Generated; /// /// Auto-generated table wrapper for schema file 'monster.schema.json'. /// The wrapper keeps generated call sites strongly typed while delegating actual storage to the runtime config table implementation. /// public sealed partial class MonsterTable : global::GFramework.Game.Abstractions.Config.IConfigTable { private readonly global::GFramework.Game.Abstractions.Config.IConfigTable _inner; /// /// Creates a generated table wrapper around the runtime config table instance. /// /// The runtime config table instance. public MonsterTable(global::GFramework.Game.Abstractions.Config.IConfigTable inner) { _inner = inner ?? throw new global::System.ArgumentNullException(nameof(inner)); } /// public global::System.Type KeyType => _inner.KeyType; /// public global::System.Type ValueType => _inner.ValueType; /// public int Count => _inner.Count; /// public MonsterConfig Get(int key) { return _inner.Get(key); } /// public bool TryGet(int key, out MonsterConfig? value) { return _inner.TryGet(key, out value); } /// public bool ContainsKey(int key) { return _inner.ContainsKey(key); } /// public global::System.Collections.Generic.IReadOnlyCollection All() { return _inner.All(); } /// /// Finds all config entries whose property 'name' equals the supplied value. /// /// The property value to match. /// A read-only snapshot containing every matching config entry. /// /// The generated helper performs a deterministic linear scan over so it stays compatible with runtime hot reload and does not require secondary index infrastructure. /// public global::System.Collections.Generic.IReadOnlyList FindByName(string value) { var matches = new global::System.Collections.Generic.List(); // Scan the current table snapshot on demand so generated helpers stay aligned with reloadable runtime data. foreach (var candidate in All()) { if (global::System.Collections.Generic.EqualityComparer.Default.Equals(candidate.Name, value)) { matches.Add(candidate); } } return matches.Count == 0 ? global::System.Array.Empty() : matches.AsReadOnly(); } /// /// Tries to find the first config entry whose property 'name' equals the supplied value. /// /// The property value to match. /// The first matching config entry when lookup succeeds; otherwise . /// when a matching config entry is found; otherwise . /// /// The generated helper walks the same snapshot exposed by and returns the first match in iteration order. /// public bool TryFindFirstByName(string value, out MonsterConfig? result) { // Keep the search path allocation-free for the first-match case by exiting as soon as one entry matches. foreach (var candidate in All()) { if (global::System.Collections.Generic.EqualityComparer.Default.Equals(candidate.Name, value)) { result = candidate; return true; } } result = null; return false; } /// /// Finds all config entries whose property 'hp' equals the supplied value. /// /// The property value to match. /// A read-only snapshot containing every matching config entry. /// /// The generated helper performs a deterministic linear scan over so it stays compatible with runtime hot reload and does not require secondary index infrastructure. /// public global::System.Collections.Generic.IReadOnlyList FindByHp(int? value) { var matches = new global::System.Collections.Generic.List(); // Scan the current table snapshot on demand so generated helpers stay aligned with reloadable runtime data. foreach (var candidate in All()) { if (global::System.Collections.Generic.EqualityComparer.Default.Equals(candidate.Hp, value)) { matches.Add(candidate); } } return matches.Count == 0 ? global::System.Array.Empty() : matches.AsReadOnly(); } /// /// Tries to find the first config entry whose property 'hp' equals the supplied value. /// /// The property value to match. /// The first matching config entry when lookup succeeds; otherwise . /// when a matching config entry is found; otherwise . /// /// The generated helper walks the same snapshot exposed by and returns the first match in iteration order. /// public bool TryFindFirstByHp(int? value, out MonsterConfig? result) { // Keep the search path allocation-free for the first-match case by exiting as soon as one entry matches. foreach (var candidate in All()) { if (global::System.Collections.Generic.EqualityComparer.Default.Equals(candidate.Hp, value)) { result = candidate; return true; } } result = null; return false; } }