From d01d444753c9e40f8d9a23994d08a2adda682a47 Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Thu, 21 Nov 2013 16:29:22 -0500 Subject: [PATCH] This miner is pretty much done :) --- .../common/IAdvancedBoundingBlock.java | 2 +- common/mekanism/common/Mekanism.java | 4 +++ .../tileentity/TileEntityDigitalMiner.java | 25 ++++++++++++------- .../induction/client/FXElectricBolt.java | 9 ++++++- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/common/mekanism/common/IAdvancedBoundingBlock.java b/common/mekanism/common/IAdvancedBoundingBlock.java index 1a1fe6f00..f642084bf 100644 --- a/common/mekanism/common/IAdvancedBoundingBlock.java +++ b/common/mekanism/common/IAdvancedBoundingBlock.java @@ -15,7 +15,7 @@ import net.minecraft.item.ItemStack; public interface IAdvancedBoundingBlock extends IBoundingBlock, ISidedInventory, IEnergySink, IStrictEnergyAcceptor, IPowerReceptor, IEnergyTile, IElectrical, IElectricalStorage, IConnector, IStrictEnergyStorage, IEnergyHandler { - public int[] getBoundSlots(Object3D location, int slotID); + public int[] getBoundSlots(Object3D location, int side); public boolean canBoundInsert(Object3D location, int i, ItemStack itemstack); diff --git a/common/mekanism/common/Mekanism.java b/common/mekanism/common/Mekanism.java index c21b76a1b..f33b0b315 100644 --- a/common/mekanism/common/Mekanism.java +++ b/common/mekanism/common/Mekanism.java @@ -422,6 +422,10 @@ public class Mekanism CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(BasicBlock, 1, 6), new Object[] { "SSS", "SCS", "SSS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), "circuitBasic" })); + CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MachineBlock, 1, 4), new Object[] { + "ACA", "SES", "TIT", Character.valueOf('A'), AtomicCore, Character.valueOf('C'), "circuitBasic", Character.valueOf('S'), new ItemStack(MachineBlock, 1, 15), Character.valueOf('E'), new ItemStack(MachineBlock, 1, 13), + Character.valueOf('I'), new ItemStack(BasicBlock, 1, 8), Character.valueOf('T'), TeleportationCore + })); //Factory Recipes CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getFactory(FactoryTier.BASIC, RecipeType.SMELTING), new Object[] { diff --git a/common/mekanism/common/tileentity/TileEntityDigitalMiner.java b/common/mekanism/common/tileentity/TileEntityDigitalMiner.java index 6b192a80b..99a00e92a 100644 --- a/common/mekanism/common/tileentity/TileEntityDigitalMiner.java +++ b/common/mekanism/common/tileentity/TileEntityDigitalMiner.java @@ -25,6 +25,7 @@ import mekanism.common.miner.MinerFilter; import mekanism.common.miner.ThreadMinerSearch; import mekanism.common.miner.ThreadMinerSearch.State; import mekanism.common.network.PacketTileEntity; +import mekanism.common.transporter.InvStack; import mekanism.common.util.ChargeUtils; import mekanism.common.util.InventoryUtils; import mekanism.common.util.MekanismUtils; @@ -237,9 +238,15 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I } } - if(doPull) + if(doPull && getPullInv() instanceof IInventory) { - //TODO + InvStack stack = InventoryUtils.takeDefinedItem((IInventory)getPullInv(), 1, replaceStack.copy(), 1, 1); + + if(stack != null) + { + stack.use(); + return MekanismUtils.size(replaceStack, 1); + } } return null; @@ -323,16 +330,16 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I return false; } - public IInventory getPullInv() + public TileEntity getPullInv() { - return null; + return new Object3D(xCoord, yCoord+2, zCoord).getTileEntity(worldObj); } public TileEntity getEjectInv() { ForgeDirection side = ForgeDirection.getOrientation(facing).getOpposite(); - return (TileEntity)new Object3D(xCoord+(side.offsetX*2), yCoord+1, zCoord+(side.offsetZ*2), worldObj.provider.dimensionId).getTileEntity(worldObj); + return new Object3D(xCoord+(side.offsetX*2), yCoord+1, zCoord+(side.offsetZ*2), worldObj.provider.dimensionId).getTileEntity(worldObj); } public void add(List stacks) @@ -925,14 +932,14 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I } @Override - public int[] getBoundSlots(Object3D location, int slotID) + public int[] getBoundSlots(Object3D location, int side) { - ForgeDirection side = ForgeDirection.getOrientation(facing).getOpposite(); + ForgeDirection dir = ForgeDirection.getOrientation(facing).getOpposite(); - Object3D eject = new Object3D(xCoord+side.offsetX, yCoord+1, zCoord+side.offsetZ, worldObj.provider.dimensionId); + Object3D eject = new Object3D(xCoord+dir.offsetX, yCoord+1, zCoord+dir.offsetZ, worldObj.provider.dimensionId); Object3D pull = new Object3D(xCoord, yCoord+1, zCoord); - if(location.equals(eject) || location.equals(pull)) + if((location.equals(eject) && side == dir.ordinal()) || (location.equals(pull) && side == 1)) { int[] ret = new int[27]; diff --git a/common/mekanism/induction/client/FXElectricBolt.java b/common/mekanism/induction/client/FXElectricBolt.java index 0e1e4b0fc..495c99d3c 100644 --- a/common/mekanism/induction/client/FXElectricBolt.java +++ b/common/mekanism/induction/client/FXElectricBolt.java @@ -244,7 +244,14 @@ public class FXElectricBolt extends EntityFX { lastActiveSegment.put(lastSplitCalc, lastActiveSeg); lastSplitCalc = segment.splitID; - lastActiveSeg = lastActiveSegment.get(parentIDMap.get(segment.splitID)).intValue(); + + if(lastActiveSegment.get(parentIDMap.get(segment.splitID)) != null) + { + lastActiveSeg = lastActiveSegment.get(parentIDMap.get(segment.splitID)).intValue(); + } + else { + lastActiveSeg = 0; + } } lastActiveSeg = segment.id;