Esempio n. 1
0
        public override void Update()
        {
            if (fuel == null)
            {
                fuel = new FuelCore(maxFuel);
            }

            if (currentRecipe == null && checkTimer <= 0)
            {
                FurnaceRecipe recipe = inputItem.IsAir ? null
                    : FurnaceRecipeManager.Instance.IsValid(inputItem)
                        ? FurnaceRecipeManager.Instance.Recipe : null;
                if (recipe != null &&
                    (outputItem.IsAir || outputItem.type == recipe.GetResult().type))
                {
                    currentRecipe = recipe;
                }

                checkTimer = 2;
            }

            if (currentRecipe != null)
            {
                UpdateItem();
                progression++;
            }
            checkTimer--;
        }
Esempio n. 2
0
        public override void Update()
        {
            if (currentRecipe == null && checkTimer <= 0)
            {
                FurnaceRecipe recipe = GetRecipe();
                if (recipe != null &&
                    (outputItem.IsAir || outputItem.type == recipe.GetResult().type))
                {
                    currentRecipe = recipe;
                }

                checkTimer = 20;
            }

            if (currentRecipe != null)
            {
                updateItem();
                progression++;
            }

            if (boundCapacitor != null)
            {
                energy.addEnergy(boundCapacitor.energy.ConsumeEnergy(boundCapacitor.maxTransferRate));
            }
            checkTimer--;
        }
Esempio n. 3
0
        private void updateItem()
        {
            if (progression >= currentRecipe.GetCookTime() && energy.ConsumeEnergy(50) == 50)
            {
                inputItem.stack -= currentRecipe.GetIngredientStack();

                Item result = currentRecipe.GetResult().Clone();

                if (outputItem.IsAir)
                {
                    outputItem = result;
                }
                else
                {
                    outputItem.stack++;
                }

                currentRecipe = null;
                progression   = 0;
            }
        }
Esempio n. 4
0
        /*****************************************************************/
        /*                         TIME FOR FUN :D                       */
        /*****************************************************************/

        private void UpdateItem()
        {
            if (progression >= cookTimer && fuel.getCurrentEnergyLevel() > 0)
            {
                inputItem.stack -= currentRecipe.GetIngredientStack();

                Item result = currentRecipe.GetResult().Clone();

                if (outputItem.IsAir)
                {
                    _outputItem.Value = result;
                }
                else
                {
                    outputItem.stack++;
                }

                fuel.ConsumeEnergy(1);
                currentRecipe = null;
                progression   = 0;
            }
        }