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); }