Ejemplo n.º 1
0
 public CraftInfo(IEnumerator activeCraft, ICraftingActionValidator validator, AudioSource audioSource, CraftingCategory category, CraftingBlueprint blueprint)
 {
     this.activeCraft = activeCraft;
     this.validator   = validator;
     this.audioSource = audioSource;
     this.category    = category;
     this.blueprint   = blueprint;
     this.craftAmount = 1;
 }
Ejemplo n.º 2
0
        public CraftingProgressContainer(ICraftingActionValidator validator, int instanceID, AudioSource audioSource)
        {
            this.validator     = validator;
            this.audioSource   = audioSource;
            this.instanceID    = instanceID;
            maxCraftQueueCount = 1;

            craftQueue = new Queue <CraftInfo>(maxCraftQueueCount);
        }
        public CraftingProgressContainer Get(ICraftingActionValidator validator, int instanceID, int category, CraftingProgressShareSetting shareSetting)
        {
            if (IsShared(shareSetting))
            {
                if (_sharedDict.ContainsKey(category))
                {
                    if (shareSetting == CraftingProgressShareSetting.ForceSingleInstancePerCategory)
                    {
                        if (_sharedDict[category].Count > 0)
                        {
                            return(_sharedDict[category][0]);
                        }

//                        foreach (var i in _sharedDict[category])
//                        {
//                            return i;
//                        }
                    }

                    if (shareSetting == CraftingProgressShareSetting.Default)
                    {
                        foreach (var i in _sharedDict[category])
                        {
                            if (i.instanceID == instanceID)
                            {
                                return(i);
                            }
                        }
                    }
                }
            }
            else
            {
                return(_singleInstance);
            }

            return(Add(_createNewAction(validator, instanceID), category, shareSetting));
//            return Get(hash, category, shareSetting);
        }
 private static CraftingProgressContainer CreateNewProgressContainer(ICraftingActionValidator validator, int id)
 {
     return(new CraftingProgressContainer(validator, id, validator.gameObject.GetComponent <AudioSource>()));
 }
        public virtual void UseWithTrigger(CraftingCategory category, CraftingProgressContainer progressContainer, ICraftingActionValidator validator, ItemCollectionBase removeItemsFromCollection, ItemCollectionBase storeRewardItemsInCollection)
        {
            Assert.IsNotNull(category);
            Assert.IsNotNull(progressContainer);

            overrideRemoveItemsFromCollection    = removeItemsFromCollection;
            overrideStoreRewardItemsInCollection = storeRewardItemsInCollection;

            if (_forceSingleInstance)
            {
                this.progressContainer = new CraftingProgressContainer(this, GetInstanceID(), GetComponent <AudioSource>());
            }
            else
            {
                this.progressContainer           = progressContainer;
                this.progressContainer.validator = validator;
            }

            SetCraftingCategory(category);
            window.Show();
        }