Large changes to allow the Electrical Furnace to be upgraded

This commit is contained in:
modmuss50 2017-10-04 13:35:58 +01:00
parent db636be12c
commit 4e536718a3
2 changed files with 19 additions and 20 deletions

View file

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

View file

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