//
#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;
}
}