From f4ebcb9c7e057ded50f4532c033583f48cacd75b Mon Sep 17 00:00:00 2001 From: Tec Date: Sun, 18 Mar 2018 22:42:06 +0100 Subject: Make Data bank work --- .../technus/tectech/loader/MachineLoader.java | 4 +- .../technus/tectech/loader/RecipeLoader.java | 4 + .../GT_MetaTileEntity_Hatch_DataConnector.java | 4 +- .../hatch/GT_MetaTileEntity_Hatch_InputData.java | 5 + .../GT_MetaTileEntity_Hatch_InputDataAccess.java | 197 ------------------- .../GT_MetaTileEntity_Hatch_InputDataItems.java | 215 +++++++++++++++++++++ .../hatch/GT_MetaTileEntity_Hatch_OutputData.java | 5 + .../GT_MetaTileEntity_Hatch_OutputDataAccess.java | 135 ------------- .../GT_MetaTileEntity_Hatch_OutputDataItems.java | 140 ++++++++++++++ .../multi/GT_MetaTileEntity_EM_dataBank.java | 16 +- .../pipe/GT_MetaTileEntity_Pipe_Data.java | 12 +- .../metaTileEntity/pipe/iConnectsToDataPipe.java | 2 + 12 files changed, 391 insertions(+), 348 deletions(-) delete mode 100644 src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataAccess.java create mode 100644 src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataItems.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputDataAccess.java create mode 100644 src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputDataItems.java (limited to 'src/main/java') diff --git a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java index 502268c888..28d617a502 100644 --- a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java @@ -272,8 +272,8 @@ public class MachineLoader implements Runnable { dataIn_Hatch.set(new GT_MetaTileEntity_Hatch_InputData(15440, "hatch.datain.tier.07", "Optical Slave Connector", 7).getStackForm(1L)); dataOut_Hatch.set(new GT_MetaTileEntity_Hatch_OutputData(15441, "hatch.dataout.tier.07", "Optical Master Connector", 7).getStackForm(1L)); - dataInAcc_Hatch.set(new GT_MetaTileEntity_Hatch_InputDataAccess(15442, "hatch.datainass.tier.07", "Assembly line Slave Connector", 7).getStackForm(1L)); - dataOutAcc_Hatch.set(new GT_MetaTileEntity_Hatch_OutputDataAccess(15443, "hatch.dataoutass.tier.07", "Data Bank Master Connector", 7).getStackForm(1L)); + dataInAcc_Hatch.set(new GT_MetaTileEntity_Hatch_InputDataItems(15442, "hatch.datainass.tier.07", "Assembly line Slave Connector", 7).getStackForm(1L)); + dataOutAcc_Hatch.set(new GT_MetaTileEntity_Hatch_OutputDataItems(15443, "hatch.dataoutass.tier.07", "Data Bank Master Connector", 7).getStackForm(1L)); rack_Hatch.set(new GT_MetaTileEntity_Hatch_Rack(15450, "hatch.rack.tier.08", "Computer Rack", 8, "4 Slot Rack").getStackForm(1L)); holder_Hatch.set(new GT_MetaTileEntity_Hatch_Holder(15451, "hatch.holder.tier.09", "Object Holder", 8, "For Research Station").getStackForm(1L)); diff --git a/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java b/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java index e95c5bd28f..9ff9bb7ed5 100644 --- a/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java @@ -77,6 +77,10 @@ public class RecipeLoader implements Runnable { 'S', OrePrefixes.circuit.get(Materials.Elite), 'E', ItemList.Hull_IV}); + //Data Bank + //RA.addAssemblylineRecipe(ItemList.Machine_Multi_Assemblyline.get(1),5000,,,,500,) + //CustomItemList.Machine_Multi_DataBank + if (Loader.isModLoaded("dreamcraft")) { new DreamCraftRecipeLoader().run();//init recipes for GTNH version } else { diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_DataConnector.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_DataConnector.java index 51a46c5892..623d5c95c5 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_DataConnector.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_DataConnector.java @@ -144,10 +144,10 @@ public abstract class GT_MetaTileEntity_Hatch_DataConnector 0) { - return new String[]{"ID: " + EnumChatFormatting.AQUA + id, "Computation: " + EnumChatFormatting.AQUA + (q != null ? q.getContentString() : 0), "PacketHistory: " + EnumChatFormatting.RED + (q != null ? q.getTraceSize() : 0),}; + return new String[]{"ID: " + EnumChatFormatting.AQUA + id, "Content: " + EnumChatFormatting.AQUA + (q != null ? q.getContentString() : 0), "PacketHistory: " + EnumChatFormatting.RED + (q != null ? q.getTraceSize() : 0),}; } return new String[]{ - "Computation: " + EnumChatFormatting.AQUA + (q != null ? q.getContentString() : 0), + "Content: " + EnumChatFormatting.AQUA + (q != null ? q.getContentString() : 0), "PacketHistory: " + EnumChatFormatting.RED + (q != null ? q.getTraceSize() : 0), }; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputData.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputData.java index f239344b6c..c441efcf1f 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputData.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputData.java @@ -36,6 +36,11 @@ public class GT_MetaTileEntity_Hatch_InputData extends GT_MetaTileEntity_Hatch_D return aSide == getBaseMetaTileEntity().getFrontFacing(); } + @Override + public boolean isDataInputFacing(byte side) { + return isInputFacing(side); + } + @Override public boolean isOutputFacing(byte aSide) { return false; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataAccess.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataAccess.java deleted file mode 100644 index 760fc53330..0000000000 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataAccess.java +++ /dev/null @@ -1,197 +0,0 @@ -package com.github.technus.tectech.thing.metaTileEntity.hatch; - -import com.github.technus.tectech.CommonValues; -import com.github.technus.tectech.dataFramework.InventoryDataPacket; -import com.github.technus.tectech.thing.metaTileEntity.pipe.iConnectsToDataPipe; -import gregtech.api.enums.Dyes; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_DataAccess; -import gregtech.api.objects.GT_RenderedTexture; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; - -import java.util.ArrayList; - -import static com.github.technus.tectech.CommonValues.MOVE_AT; -import static com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DataConnector.EM_D_ACTIVE; -import static com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DataConnector.EM_D_CONN; -import static com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DataConnector.EM_D_SIDES; -import static gregtech.api.enums.Dyes.MACHINE_METAL; - -public class GT_MetaTileEntity_Hatch_InputDataAccess extends GT_MetaTileEntity_Hatch_DataAccess implements iConnectsToDataPipe { - private final String mDescription; - public boolean delDelay = true; - private ItemStack[] stacks; - - public GT_MetaTileEntity_Hatch_InputDataAccess(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier); - mDescription="ItemStack Data Input for Multiblocks"; - } - - public GT_MetaTileEntity_Hatch_InputDataAccess(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aDescription, aTextures); - mDescription=aDescription; - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(EM_D_ACTIVE, Dyes.getModulation(getBaseMetaTileEntity().getColorization(), MACHINE_METAL.getRGBA())), new GT_RenderedTexture(EM_D_CONN)}; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(EM_D_SIDES, Dyes.getModulation(getBaseMetaTileEntity().getColorization(), MACHINE_METAL.getRGBA())), new GT_RenderedTexture(EM_D_CONN)}; - } - - @Override - public boolean isSimpleMachine() { - return true; - } - - @Override - public boolean isFacingValid(byte aFacing) { - return true; - } - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_InputDataAccess(this.mName, this.mTier, mDescription, this.mTextures); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } else { - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - } - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public int getInventoryStackLimit() { - return 1; - } - - @Override - public boolean isOutputFacing(byte aSide) { - return false; - } - - @Override - public boolean isInputFacing(byte aSide) { - return aSide == getBaseMetaTileEntity().getFrontFacing(); - } - - @Override - public boolean canConnect(byte side) { - return isInputFacing(side); - } - - @Override - public iConnectsToDataPipe getNext(iConnectsToDataPipe source) { - return null; - } - - public void setContents(InventoryDataPacket q){ - if(q==null){ - stacks=null; - }else{ - if(q.getContent().length>0) { - stacks = q.getContent(); - delDelay=true; - }else{ - stacks=null; - } - } - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - NBTTagCompound stacksTag=new NBTTagCompound(); - if(stacks!=null && stacks.length>0){ - stacksTag.setInteger("count",stacks.length); - for(int i=0;i0){ - ArrayList stacks=new ArrayList<>(); - for(int i=0;i0) { - this.stacks = stacks.toArray(new ItemStack[0]); - } - } - } - - @Override - public int getSizeInventory() { - return stacks!=null?stacks.length:0; - } - - @Override - public ItemStack getStackInSlot(int aIndex) { - return stacks!=null && aIndex0) { + stacks = q.getContent(); + delDelay=true; + }else{ + stacks=null; + } + } + } + + @Override + public void onRemoval() { + stacks=null; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + NBTTagCompound stacksTag=new NBTTagCompound(); + if(stacks!=null && stacks.length>0){ + stacksTag.setInteger("count",stacks.length); + for(int i=0;i0){ + ArrayList stacks=new ArrayList<>(); + for(int i=0;i0) { + this.stacks = stacks.toArray(new ItemStack[0]); + } + } + } + + @Override + public int getSizeInventory() { + return stacks!=null?stacks.length:0; + } + + @Override + public ItemStack getStackInSlot(int aIndex) { + return stacks!=null && aIndex0); + } + } + + @Override + public String[] getDescription() { + return new String[]{ + CommonValues.TEC_MARK_EM, + mDescription, + "High speed fibre optics connector.", + EnumChatFormatting.AQUA + "Must be painted to work" + }; + } + + @Override + public String[] getInfoData() { + return new String[]{ + "Content: Stack Count: "+(stacks==null?0:stacks.length) + }; + } +} diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputData.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputData.java index 25449160b1..f53826667d 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputData.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputData.java @@ -42,6 +42,11 @@ public class GT_MetaTileEntity_Hatch_OutputData extends GT_MetaTileEntity_Hatch_ return false; } + @Override + public boolean isDataInputFacing(byte side) { + return isInputFacing(side); + } + @Override public boolean isSimpleMachine() { return true; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputDataAccess.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputDataAccess.java deleted file mode 100644 index 5915dff18b..0000000000 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputDataAccess.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.github.technus.tectech.thing.metaTileEntity.hatch; - -import com.github.technus.tectech.dataFramework.InventoryDataPacket; -import com.github.technus.tectech.thing.metaTileEntity.pipe.GT_MetaTileEntity_Pipe_Data; -import com.github.technus.tectech.thing.metaTileEntity.pipe.iConnectsToDataPipe; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.util.GT_Utility; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -public class GT_MetaTileEntity_Hatch_OutputDataAccess extends GT_MetaTileEntity_Hatch_DataConnector { - public GT_MetaTileEntity_Hatch_OutputDataAccess(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, "ItemStack Data Output for Multiblocks"); - } - - public GT_MetaTileEntity_Hatch_OutputDataAccess(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aDescription, aTextures); - } - - @Override - public boolean isSimpleMachine() { - return true; - } - - @Override - public boolean isFacingValid(byte aFacing) { - return true; - } - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_Hatch_OutputDataAccess(this.mName, this.mTier, this.mDescription, this.mTextures); - } - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } else { - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - } - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } - - @Override - public int getInventoryStackLimit() { - return 1; - } - - @Override - public boolean isOutputFacing(byte aSide) { - return aSide == getBaseMetaTileEntity().getFrontFacing(); - } - - @Override - public boolean isInputFacing(byte aSide) { - return false; - } - - @Override - public boolean canConnect(byte side) { - return isOutputFacing(side); - } - - @Override - public void moveAround(IGregTechTileEntity aBaseMetaTileEntity) { - iConnectsToDataPipe current = this, source = this, next; - int range = 0; - while ((next = current.getNext(source)) != null && range++ < 1000) { - if (next instanceof GT_MetaTileEntity_Hatch_InputDataAccess) { - ((GT_MetaTileEntity_Hatch_InputDataAccess) next).setContents(q); - break; - } - source = current; - current = next; - } - q = null; - } - - @Override - public iConnectsToDataPipe getNext(iConnectsToDataPipe source/*==this*/) { - IGregTechTileEntity base = getBaseMetaTileEntity(); - byte color = base.getColorization(); - if (color < 0) { - return null; - } - IGregTechTileEntity next = base.getIGregTechTileEntityAtSide(base.getFrontFacing()); - if (next == null || color != base.getColorization()) { - return null; - } - IMetaTileEntity meta = next.getMetaTileEntity(); - if (meta instanceof iConnectsToDataPipe) { - if (meta instanceof GT_MetaTileEntity_Hatch_InputDataAccess - && GT_Utility.getOppositeSide(next.getFrontFacing()) == base.getFrontFacing()) { - return (iConnectsToDataPipe) meta; - } - if (meta instanceof GT_MetaTileEntity_Pipe_Data - /*&& ((GT_MetaTileEntity_Pipe_Data) meta).connectionCount==2*/)//Checked later - { - return (iConnectsToDataPipe) meta; - } - } - return null; - } - - @Override - protected InventoryDataPacket loadPacketFromNBT(NBTTagCompound nbt) { - return new InventoryDataPacket(nbt); - } -} diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputDataItems.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputDataItems.java new file mode 100644 index 0000000000..330c19d391 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OutputDataItems.java @@ -0,0 +1,140 @@ +package com.github.technus.tectech.thing.metaTileEntity.hatch; + +import com.github.technus.tectech.dataFramework.InventoryDataPacket; +import com.github.technus.tectech.thing.metaTileEntity.pipe.GT_MetaTileEntity_Pipe_Data; +import com.github.technus.tectech.thing.metaTileEntity.pipe.iConnectsToDataPipe; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.util.GT_Utility; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class GT_MetaTileEntity_Hatch_OutputDataItems extends GT_MetaTileEntity_Hatch_DataConnector { + public GT_MetaTileEntity_Hatch_OutputDataItems(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, "ItemStack Data Output for Multiblocks"); + } + + public GT_MetaTileEntity_Hatch_OutputDataItems(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, aDescription, aTextures); + } + + @Override + public boolean isSimpleMachine() { + return true; + } + + @Override + public boolean isFacingValid(byte aFacing) { + return true; + } + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_Hatch_OutputDataItems(this.mName, this.mTier, this.mDescription, this.mTextures); + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (aBaseMetaTileEntity.isClientSide()) { + return true; + } else { + aBaseMetaTileEntity.openGUI(aPlayer); + return true; + } + } + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return null; + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return null; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return false; + } + + @Override + public int getInventoryStackLimit() { + return 1; + } + + @Override + public boolean isOutputFacing(byte aSide) { + return aSide == getBaseMetaTileEntity().getFrontFacing(); + } + + @Override + public boolean isInputFacing(byte aSide) { + return false; + } + + @Override + public boolean isDataInputFacing(byte side) { + return isInputFacing(side); + } + + @Override + public boolean canConnect(byte side) { + return isOutputFacing(side); + } + + @Override + public void moveAround(IGregTechTileEntity aBaseMetaTileEntity) { + iConnectsToDataPipe current = this, source = this, next; + int range = 0; + while ((next = current.getNext(source)) != null && range++ < 1000) { + if (next instanceof GT_MetaTileEntity_Hatch_InputDataItems) { + ((GT_MetaTileEntity_Hatch_InputDataItems) next).setContents(q); + break; + } + source = current; + current = next; + } + q = null; + } + + @Override + public iConnectsToDataPipe getNext(iConnectsToDataPipe source/*==this*/) { + IGregTechTileEntity base = getBaseMetaTileEntity(); + byte color = base.getColorization(); + if (color < 0) { + return null; + } + IGregTechTileEntity next = base.getIGregTechTileEntityAtSide(base.getFrontFacing()); + if (next == null || color != base.getColorization()) { + return null; + } + IMetaTileEntity meta = next.getMetaTileEntity(); + if (meta instanceof iConnectsToDataPipe) { + if (meta instanceof GT_MetaTileEntity_Hatch_InputDataItems + && GT_Utility.getOppositeSide(next.getFrontFacing()) == base.getFrontFacing()) { + return (iConnectsToDataPipe) meta; + } + if (meta instanceof GT_MetaTileEntity_Pipe_Data + /*&& ((GT_MetaTileEntity_Pipe_Data) meta).connectionCount==2*/)//Checked later + { + return (iConnectsToDataPipe) meta; + } + } + return null; + } + + @Override + protected InventoryDataPacket loadPacketFromNBT(NBTTagCompound nbt) { + return new InventoryDataPacket(nbt); + } +} diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java index c66aa08c7f..1a6c776949 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java @@ -5,8 +5,8 @@ import com.github.technus.tectech.auxiliary.Reference; import com.github.technus.tectech.auxiliary.TecTechConfig; import com.github.technus.tectech.dataFramework.InventoryDataPacket; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputDataAccess; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputDataAccess; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputDataItems; +import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputDataItems; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; @@ -31,7 +31,7 @@ import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.texture import static com.github.technus.tectech.thing.casing.TT_Container_Casings.sBlockCasingsTT; public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { - private final ArrayList eStacksDataOutputs = new ArrayList<>(); + private final ArrayList eStacksDataOutputs = new ArrayList<>(); private final ArrayList eDataAccessHatches = new ArrayList<>(); //region Structure @@ -125,11 +125,11 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB } if(stacks.size()>0){ ItemStack[] arr=stacks.toArray(new ItemStack[0]); - for(GT_MetaTileEntity_Hatch_OutputDataAccess hatch:eStacksDataOutputs){ + for(GT_MetaTileEntity_Hatch_OutputDataItems hatch:eStacksDataOutputs){ hatch.q=new InventoryDataPacket(arr); } }else{ - for(GT_MetaTileEntity_Hatch_OutputDataAccess hatch:eStacksDataOutputs){ + for(GT_MetaTileEntity_Hatch_OutputDataItems hatch:eStacksDataOutputs){ hatch.q=null; } } @@ -153,10 +153,10 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB if (aMetaTileEntity == null) { return false; } - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputDataAccess) { + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputDataItems) { ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return eStacksDataOutputs.add((GT_MetaTileEntity_Hatch_OutputDataAccess) aMetaTileEntity); - }else if(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DataAccess && !(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputDataAccess)){ + return eStacksDataOutputs.add((GT_MetaTileEntity_Hatch_OutputDataItems) aMetaTileEntity); + }else if(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DataAccess && !(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputDataItems)){ ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); return eDataAccessHatches.add((GT_MetaTileEntity_Hatch_DataAccess) aMetaTileEntity); } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/GT_MetaTileEntity_Pipe_Data.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/GT_MetaTileEntity_Pipe_Data.java index ded80ee73e..4e50b7f4dc 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/GT_MetaTileEntity_Pipe_Data.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/GT_MetaTileEntity_Pipe_Data.java @@ -1,7 +1,6 @@ package com.github.technus.tectech.thing.metaTileEntity.pipe; import com.github.technus.tectech.CommonValues; -import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputData; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.GT_Mod; @@ -172,13 +171,13 @@ public class GT_MetaTileEntity_Pipe_Data extends MetaPipeEntity implements iConn } IMetaTileEntity meta = next.getMetaTileEntity(); if (meta instanceof iConnectsToDataPipe && meta != source) { - if (meta instanceof GT_MetaTileEntity_Hatch_InputData) { - return (iConnectsToDataPipe) meta; - } if (meta instanceof GT_MetaTileEntity_Pipe_Data && ((GT_MetaTileEntity_Pipe_Data) meta).connectionCount == 2) { return (iConnectsToDataPipe) meta; } + if(((iConnectsToDataPipe) meta).isDataInputFacing(GT_Utility.getOppositeSide(b))){ + return (iConnectsToDataPipe) meta; + } } } return null; @@ -231,4 +230,9 @@ public class GT_MetaTileEntity_Pipe_Data extends MetaPipeEntity implements iConn } return 0.375f; } + + @Override + public boolean isDataInputFacing(byte side) { + return true; + } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToDataPipe.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToDataPipe.java index 67db2ff5bb..95043b2ae1 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToDataPipe.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToDataPipe.java @@ -7,4 +7,6 @@ public interface iConnectsToDataPipe { boolean canConnect(byte side); iConnectsToDataPipe getNext(iConnectsToDataPipe source); + + boolean isDataInputFacing(byte side); } -- cgit