public void OnCreateCoal(AddCoalInfo info, long entityId, ulong coalId) { CoalsContainer container; var type = info.Type; if (containerDic.TryGetValue(type, out container) == false) { container = new CoalsContainer(type, this.transform, this.Origin); containerDic.Add(type, container); } container.OnCreate(info, entityId, coalId); }
public void OnCreate(AddCoalInfo add, long entityId, ulong coalId) { // check CoalInfoObject coal; if (deactiveQueue.Count > 1) { coal = deactiveQueue.Dequeue(); } else { var go = Instantiate(this.CoalObject, this.coalParent); coal = go.GetComponent <CoalInfoObject>(); coal.SetCallback(OnVanish); } coal.IsActive = true; coal.SetCoal(add.Amount, entityId, coalId); coal.transform.position = add.Pos.ToUnityVector() + this.Origin; // add var key = entityId; var id = coalId; if (coalsDic.ContainsKey(key)) { var dic = coalsDic[key]; if (dic.ContainsKey(id)) { dic[id] = coal; } else { dic.Add(id, coal); } } else { var dic = new Dictionary <ulong, CoalInfoObject>(); dic.Add(id, coal); coalsDic.Add(key, dic); } }