Пример #1
0
        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);
        }
Пример #2
0
            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);
                }
            }