From 4e536718a3fe116ba4d982658aad818a4e1c38c2 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Wed, 4 Oct 2017 13:35:58 +0100 Subject: [PATCH] Large changes to allow the Electrical Furnace to be upgraded --- .../java/techreborn/items/ItemUpgrades.java | 29 +++++++++---------- .../tiles/teir1/TileElectricFurnace.java | 10 +++---- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/main/java/techreborn/items/ItemUpgrades.java b/src/main/java/techreborn/items/ItemUpgrades.java index de7236bc6..1578a721f 100644 --- a/src/main/java/techreborn/items/ItemUpgrades.java +++ b/src/main/java/techreborn/items/ItemUpgrades.java @@ -39,8 +39,10 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; +import reborncore.api.recipe.IRecipeCrafterProvider; import reborncore.api.tile.IUpgrade; import reborncore.common.powerSystem.TilePowerAcceptor; +import reborncore.common.recipes.IUpgradeHandler; import reborncore.common.recipes.RecipeCrafter; import reborncore.common.tile.IMachineSlotProvider; import reborncore.common.tile.TileLegacyMachineBase; @@ -121,21 +123,20 @@ public class ItemUpgrades extends ItemTR implements IUpgrade { @Nonnull TileLegacyMachineBase machineBase, @Nullable - RecipeCrafter crafter, + IUpgradeHandler handler, @Nonnull ItemStack stack) { if (stack.getItemDamage() == 0) { - if (crafter != null) { - crafter.addSpeedMulti(0.25); - crafter.addPowerMulti(0.5); - } + handler.addSpeedMulti(0.25); + handler.addPowerMulti(0.5); } else if (stack.getItemDamage() == 4) { EnumFacing dir = getFacing(stack); TileEntity tileEntity = machineBase.getWorld().getTileEntity(machineBase.getPos().offset(dir)); if (tileEntity instanceof IInventory) { - if (crafter != null) { + if (machineBase instanceof IRecipeCrafterProvider) { + RecipeCrafter crafter = ((IRecipeCrafterProvider) machineBase).getRecipeCrafter(); for (Integer outSlot : crafter.outputSlots) { ItemStack outputStack = crafter.inventory.getStackInSlot(outSlot); if (!outputStack.isEmpty()) { @@ -181,16 +182,14 @@ public class ItemUpgrades extends ItemTR implements IUpgrade { if (tileEntity != null && tileEntity.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, dir.getOpposite())) { IItemHandler itemHandler = tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, dir.getOpposite()); for (int i = 0; i < itemHandler.getSlots(); i++) { - ItemStack stack1 = itemHandler.getStackInSlot(i); - if (crafter == null || crafter.isStackValidInput(stack1)) { - ItemStack extractedStack = itemHandler.extractItem(i, 1, true); - int amount = InventoryHelper.testInventoryInsertion(machineBase, extractedStack, null); - if (amount > 0) { - extractedStack = itemHandler.extractItem(i, 1, false); - extractedStack.setCount(1); - InventoryHelper.insertItemIntoInventory(machineBase, extractedStack); - } + ItemStack extractedStack = itemHandler.extractItem(i, 1, true); + int amount = InventoryHelper.testInventoryInsertion(machineBase, extractedStack, null); + if (amount > 0) { + extractedStack = itemHandler.extractItem(i, 1, false); + extractedStack.setCount(1); + InventoryHelper.insertItemIntoInventory(machineBase, extractedStack); } + } } diff --git a/src/main/java/techreborn/tiles/teir1/TileElectricFurnace.java b/src/main/java/techreborn/tiles/teir1/TileElectricFurnace.java index c6a773354..201546a2b 100644 --- a/src/main/java/techreborn/tiles/teir1/TileElectricFurnace.java +++ b/src/main/java/techreborn/tiles/teir1/TileElectricFurnace.java @@ -30,8 +30,8 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.util.EnumFacing; -import reborncore.api.tile.IInventoryProvider; import reborncore.api.IToolDrop; +import reborncore.api.tile.IInventoryProvider; import reborncore.common.blocks.BlockMachineBase; import reborncore.common.powerSystem.TilePowerAcceptor; import reborncore.common.tile.IMachineSlotProvider; @@ -74,9 +74,9 @@ public class TileElectricFurnace extends TilePowerAcceptor this.progress++; if (this.progress % 10 == 0) { - this.useEnergy(this.cost); + this.useEnergy(getEuPerTick(this.cost)); } - if (this.progress >= this.fuelScale) { + if (this.progress >= Math.max((int) (fuelScale * (1.0 - getSpeedMultiplier())), 1)) { this.progress = 0; this.cookItems(); updateInventory = true; @@ -127,7 +127,7 @@ public class TileElectricFurnace extends TilePowerAcceptor } public boolean isBurning() { - return this.getEnergy() > this.cost; + return this.getEnergy() > getEuPerTick(this.cost); } public ItemStack getResultFor(final ItemStack stack) { @@ -245,6 +245,6 @@ public class TileElectricFurnace extends TilePowerAcceptor @Override public boolean canBeUpgraded() { - return false; + return true; } }