Upgrade merge

This commit is contained in:
Dimmerworld 2017-10-06 16:55:31 +11:00 committed by drcrazy
parent 74b8246b39
commit 9855cce93d

View file

@ -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,16 +182,14 @@ 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); ItemStack extractedStack = itemHandler.extractItem(i, 1, true);
if (crafter == null || crafter.isStackValidInput(stack1)) { int amount = InventoryHelper.testInventoryInsertion(machineBase, extractedStack, null);
ItemStack extractedStack = itemHandler.extractItem(i, 1, true); if (amount > 0) {
int amount = InventoryHelper.testInventoryInsertion(machineBase, extractedStack, null); extractedStack = itemHandler.extractItem(i, 1, false);
if (amount > 0) { extractedStack.setCount(1);
extractedStack = itemHandler.extractItem(i, 1, false); InventoryHelper.insertItemIntoInventory(machineBase, extractedStack);
extractedStack.setCount(1);
InventoryHelper.insertItemIntoInventory(machineBase, extractedStack);
}
} }
} }
} }