Large changes to allow the Electrical Furnace to be upgraded
This commit is contained in:
parent
db636be12c
commit
4e536718a3
2 changed files with 19 additions and 20 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue