using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///
/// 数值容器
///
public class ValueContainer {
/// 数值字典
public Dictionary dictionary = new Dictionary();
/// 所引器
public ValueInstance this[string id] => dictionary[id];
/// 所引器(枚举)
public ValueInstance this[Enum id] => dictionary[id.ToString()];
/// 循环集合
public void ForEach(Action action) {
foreach (var item in dictionary) { action?.Invoke(item.Key, item.Value); }
}
/// 添加数值
public void AddInstance(ValueType type, Enum name) {
var instance = ValueInstance.Create(type, name);
AddInstance(instance);
}
/// 添加数值
public void AddInstance(ValueType type, string name) {
var instance = ValueInstance.Create(type, name);
AddInstance(instance);
}
/// 添加数值
public void AddInstance(ValueInstance instance) {
if (dictionary.ContainsKey(instance.name)) { return; }
dictionary.Add(instance.name, instance);
}
/// 重新计算值
public void RecalculateValue() {
foreach (var item in dictionary) { item.Value.RecalculateValue(); }
}
}