示例#1
0
        public void AddChestExposer(ChestExposerScript chest, out int id)
        {
            if (chestExposers == null)
            {
                chestExposers = new List <ChestExposerScript>();
            }

            if (!chestExposers.Contains(chest) && chest)
            {
                chestExposers.Add(chest);
            }

            activeChests++;

            id       = AddChestInDirectory(chest);
            chest.Id = id;
            chest.ChestPhotonView = chestPhotonView;
            chest.chestContentManagerScript.pools.Add(dashPool);
            chest.chestContentManagerScript.pools.Add(potionPool);
            chest.chestContentManagerScript.itemSlot = chestItemSlot;

            if (debug)
            {
                Debug.Log(id >= 0
                    ? "[ColliderDirectoryScript] Successful added chest to directory"
                    : "[ColliderDirectoryScript] Failed to add chest in directory");
            }
        }
示例#2
0
 public void RemoveChestExposer(ChestExposerScript chest)
 {
     activeChests--;
     chest.Id = -1;
     if (chestExposers.Contains(chest) && chest)
     {
         chestExposers.Remove(chest);
     }
 }
示例#3
0
        private int AddChestInDirectory(ChestExposerScript chest)
        {
            var id = -1;

            if (debug)
            {
                Debug.Log("[ColliderDirectoryScript] Add one chest to directory");
            }
            if (_chestsDirectory.ContainsValue(chest))
            {
                return(id);
            }
            _chestsDirectory.Add(chest.ChestCollider, chest);
            id = activeChests - 1;
            if (debug)
            {
                Debug.LogFormat("[ColliderDirectoryScript] Directory key : {0} and value : {1}",
                                chest.ChestCollider, chest);
            }
            return(id);
        }