Exemple #1
0
        public bool TryAdd(IItemSlot sourceSlot)
        {
            if (OutSlot.StackSize > 0)
            {
                return(false);
            }
            if (sourceSlot.Itemstack == null)
            {
                return(false);
            }

            CollectibleObject collectible = sourceSlot.Itemstack.Collectible;

            if (collectible.CombustibleProps?.SmeltedStack != null && collectible.CombustibleProps.MeltingPoint < 1500)
            {
                int prevsize = sourceSlot.StackSize;
                if (OreSlot.StackSize >= 20)
                {
                    return(false);
                }

                sourceSlot.TryPutInto(api.World, OreSlot);
                MarkDirty();
                return(prevsize != sourceSlot.StackSize);
            }

            if (collectible.CombustibleProps?.BurnTemperature >= 1200 && collectible.CombustibleProps.BurnDuration > 30)
            {
                int prevsize = sourceSlot.StackSize;
                if (FuelSlot.StackSize >= 20)
                {
                    return(false);
                }

                sourceSlot.TryPutInto(api.World, FuelSlot);
                MarkDirty();
                return(prevsize != sourceSlot.StackSize);
            }

            return(false);
        }