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.fml.relauncher.SideOnly;
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
import reborncore.api.recipe.IRecipeCrafterProvider;
|
||||||
import reborncore.api.tile.IUpgrade;
|
import reborncore.api.tile.IUpgrade;
|
||||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||||
|
import reborncore.common.recipes.IUpgradeHandler;
|
||||||
import reborncore.common.recipes.RecipeCrafter;
|
import reborncore.common.recipes.RecipeCrafter;
|
||||||
import reborncore.common.tile.IMachineSlotProvider;
|
import reborncore.common.tile.IMachineSlotProvider;
|
||||||
import reborncore.common.tile.TileLegacyMachineBase;
|
import reborncore.common.tile.TileLegacyMachineBase;
|
||||||
|
@ -121,21 +123,20 @@ public class ItemUpgrades extends ItemTR implements IUpgrade {
|
||||||
@Nonnull
|
@Nonnull
|
||||||
TileLegacyMachineBase machineBase,
|
TileLegacyMachineBase machineBase,
|
||||||
@Nullable
|
@Nullable
|
||||||
RecipeCrafter crafter,
|
IUpgradeHandler handler,
|
||||||
@Nonnull
|
@Nonnull
|
||||||
ItemStack stack) {
|
ItemStack stack) {
|
||||||
|
|
||||||
if (stack.getItemDamage() == 0) {
|
if (stack.getItemDamage() == 0) {
|
||||||
if (crafter != null) {
|
handler.addSpeedMulti(0.25);
|
||||||
crafter.addSpeedMulti(0.25);
|
handler.addPowerMulti(0.5);
|
||||||
crafter.addPowerMulti(0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (stack.getItemDamage() == 4) {
|
} else if (stack.getItemDamage() == 4) {
|
||||||
EnumFacing dir = getFacing(stack);
|
EnumFacing dir = getFacing(stack);
|
||||||
TileEntity tileEntity = machineBase.getWorld().getTileEntity(machineBase.getPos().offset(dir));
|
TileEntity tileEntity = machineBase.getWorld().getTileEntity(machineBase.getPos().offset(dir));
|
||||||
if (tileEntity instanceof IInventory) {
|
if (tileEntity instanceof IInventory) {
|
||||||
if (crafter != null) {
|
if (machineBase instanceof IRecipeCrafterProvider) {
|
||||||
|
RecipeCrafter crafter = ((IRecipeCrafterProvider) machineBase).getRecipeCrafter();
|
||||||
for (Integer outSlot : crafter.outputSlots) {
|
for (Integer outSlot : crafter.outputSlots) {
|
||||||
ItemStack outputStack = crafter.inventory.getStackInSlot(outSlot);
|
ItemStack outputStack = crafter.inventory.getStackInSlot(outSlot);
|
||||||
if (!outputStack.isEmpty()) {
|
if (!outputStack.isEmpty()) {
|
||||||
|
@ -181,8 +182,6 @@ public class ItemUpgrades extends ItemTR implements IUpgrade {
|
||||||
if (tileEntity != null && tileEntity.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, dir.getOpposite())) {
|
if (tileEntity != null && tileEntity.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, dir.getOpposite())) {
|
||||||
IItemHandler itemHandler = tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, dir.getOpposite());
|
IItemHandler itemHandler = tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, dir.getOpposite());
|
||||||
for (int i = 0; i < itemHandler.getSlots(); i++) {
|
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);
|
ItemStack extractedStack = itemHandler.extractItem(i, 1, true);
|
||||||
int amount = InventoryHelper.testInventoryInsertion(machineBase, extractedStack, null);
|
int amount = InventoryHelper.testInventoryInsertion(machineBase, extractedStack, null);
|
||||||
if (amount > 0) {
|
if (amount > 0) {
|
||||||
|
@ -190,7 +189,7 @@ public class ItemUpgrades extends ItemTR implements IUpgrade {
|
||||||
extractedStack.setCount(1);
|
extractedStack.setCount(1);
|
||||||
InventoryHelper.insertItemIntoInventory(machineBase, extractedStack);
|
InventoryHelper.insertItemIntoInventory(machineBase, extractedStack);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,8 +30,8 @@ import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.crafting.FurnaceRecipes;
|
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import reborncore.api.tile.IInventoryProvider;
|
|
||||||
import reborncore.api.IToolDrop;
|
import reborncore.api.IToolDrop;
|
||||||
|
import reborncore.api.tile.IInventoryProvider;
|
||||||
import reborncore.common.blocks.BlockMachineBase;
|
import reborncore.common.blocks.BlockMachineBase;
|
||||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||||
import reborncore.common.tile.IMachineSlotProvider;
|
import reborncore.common.tile.IMachineSlotProvider;
|
||||||
|
@ -74,9 +74,9 @@ public class TileElectricFurnace extends TilePowerAcceptor
|
||||||
|
|
||||||
this.progress++;
|
this.progress++;
|
||||||
if (this.progress % 10 == 0) {
|
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.progress = 0;
|
||||||
this.cookItems();
|
this.cookItems();
|
||||||
updateInventory = true;
|
updateInventory = true;
|
||||||
|
@ -127,7 +127,7 @@ public class TileElectricFurnace extends TilePowerAcceptor
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isBurning() {
|
public boolean isBurning() {
|
||||||
return this.getEnergy() > this.cost;
|
return this.getEnergy() > getEuPerTick(this.cost);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemStack getResultFor(final ItemStack stack) {
|
public ItemStack getResultFor(final ItemStack stack) {
|
||||||
|
@ -245,6 +245,6 @@ public class TileElectricFurnace extends TilePowerAcceptor
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canBeUpgraded() {
|
public boolean canBeUpgraded() {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue