//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using Bright.Serialization;
using System.Collections.Generic;
using SimpleJSON;



namespace cfg
{ 

public sealed partial class CfgEnemy
{
    private readonly Dictionary<int, SingleEnemyConfig> _dataMap;
    private readonly List<SingleEnemyConfig> _dataList;
    
    public CfgEnemy(JSONNode _json)
    {
        _dataMap = new Dictionary<int, SingleEnemyConfig>();
        _dataList = new List<SingleEnemyConfig>();
        
        foreach(JSONNode _row in _json.Children)
        {
            var _v = SingleEnemyConfig.DeserializeSingleEnemyConfig(_row);
            _dataList.Add(_v);
            _dataMap.Add(_v.ID, _v);
        }
        PostInit();
    }

    public Dictionary<int, SingleEnemyConfig> DataMap => _dataMap;
    public List<SingleEnemyConfig> DataList => _dataList;

    public SingleEnemyConfig GetOrDefault(int key) => _dataMap.TryGetValue(key, out var v) ? v : null;
    public SingleEnemyConfig Get(int key) => _dataMap[key];
    public SingleEnemyConfig this[int key] => _dataMap[key];

    public void Resolve(Dictionary<string, object> _tables)
    {
        foreach(var v in _dataList)
        {
            v.Resolve(_tables);
        }
        PostResolve();
    }

    public void TranslateText(System.Func<string, string, string> translator)
    {
        foreach(var v in _dataList)
        {
            v.TranslateText(translator);
        }
    }
    
    
    partial void PostInit();
    partial void PostResolve();
}

}