From 0ba40893414b104ea562bfb26bce750ffee5de63 Mon Sep 17 00:00:00 2001 From: Tec Date: Mon, 19 Mar 2018 21:16:57 +0100 Subject: Cleanup data pipe api --- .../GT_MetaTileEntity_Hatch_DataConnector.java | 9 ++- ...GT_MetaTileEntity_Hatch_ElementalContainer.java | 4 +- .../hatch/GT_MetaTileEntity_Hatch_InputData.java | 23 +++++-- .../GT_MetaTileEntity_Hatch_InputDataItems.java | 40 ++++++++---- .../hatch/GT_MetaTileEntity_Hatch_OutputData.java | 43 ++++++------ .../GT_MetaTileEntity_Hatch_OutputDataItems.java | 36 +++++----- .../multi/GT_MetaTileEntity_EM_dataBank.java | 23 +++++++ .../pipe/GT_MetaTileEntity_Pipe_Data.java | 76 +++++++++++----------- .../pipe/GT_MetaTileEntity_Pipe_EM.java | 8 +-- .../metaTileEntity/pipe/IConnectsToDataPipe.java | 14 ++++ .../metaTileEntity/pipe/IConnectsToEMpipe.java | 8 +++ .../metaTileEntity/pipe/iConnectsToDataPipe.java | 12 ---- .../metaTileEntity/pipe/iConnectsToEMpipe.java | 8 --- 13 files changed, 177 insertions(+), 127 deletions(-) create mode 100644 src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/IConnectsToDataPipe.java create mode 100644 src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/IConnectsToEMpipe.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToDataPipe.java delete mode 100644 src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToEMpipe.java (limited to 'src/main/java') 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 623d5c95c5..22c2ac2e2b 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 @@ -2,7 +2,7 @@ package com.github.technus.tectech.thing.metaTileEntity.hatch; import com.github.technus.tectech.CommonValues; import com.github.technus.tectech.dataFramework.DataPacket; -import com.github.technus.tectech.thing.metaTileEntity.pipe.iConnectsToDataPipe; +import com.github.technus.tectech.thing.metaTileEntity.pipe.IConnectsToDataPipe; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.Dyes; @@ -24,7 +24,7 @@ import static gregtech.api.enums.Dyes.MACHINE_METAL; /** * Created by danie_000 on 11.12.2016. */ -public abstract class GT_MetaTileEntity_Hatch_DataConnector extends GT_MetaTileEntity_Hatch implements iConnectsToDataPipe { +public abstract class GT_MetaTileEntity_Hatch_DataConnector extends GT_MetaTileEntity_Hatch implements IConnectsToDataPipe { public static Textures.BlockIcons.CustomIcon EM_D_SIDES; public static Textures.BlockIcons.CustomIcon EM_D_ACTIVE; public static Textures.BlockIcons.CustomIcon EM_D_CONN; @@ -161,4 +161,9 @@ public abstract class GT_MetaTileEntity_Hatch_DataConnector { - public boolean delDelay = true; + private boolean delDelay = true; public GT_MetaTileEntity_Hatch_InputData(int aID, String aName, String aNameRegional, int aTier) { super(aID, aName, aNameRegional, aTier, "Quantum Data Input for Multiblocks"); @@ -52,21 +52,34 @@ public class GT_MetaTileEntity_Hatch_InputData extends GT_MetaTileEntity_Hatch_D } @Override - public boolean canConnect(byte side) { + public boolean canConnectData(byte side) { return isInputFacing(side); } @Override - public iConnectsToDataPipe getNext(iConnectsToDataPipe source) { + public IConnectsToDataPipe getNext(IConnectsToDataPipe source) { return null; } + public void setContents(QuantumDataPacket qIn){ + if(qIn==null){ + this.q=null; + }else{ + if(qIn.getContent()>0) { + this.q = qIn; + delDelay=true; + }else{ + this.q=null; + } + } + } + @Override public void moveAround(IGregTechTileEntity aBaseMetaTileEntity) { if (delDelay) { delDelay = false; } else { - q = null; + setContents(null); } } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataItems.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataItems.java index 229ddc863b..51f3a6c21c 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataItems.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataItems.java @@ -2,7 +2,7 @@ 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 com.github.technus.tectech.thing.metaTileEntity.pipe.IConnectsToDataPipe; import gregtech.api.enums.Dyes; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -23,7 +23,7 @@ import static com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileE 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_InputDataItems extends GT_MetaTileEntity_Hatch_DataAccess implements iConnectsToDataPipe { +public class GT_MetaTileEntity_Hatch_InputDataItems extends GT_MetaTileEntity_Hatch_DataAccess implements IConnectsToDataPipe { private final String mDescription; public boolean delDelay = true; private ItemStack[] stacks; @@ -114,21 +114,21 @@ public class GT_MetaTileEntity_Hatch_InputDataItems extends GT_MetaTileEntity_Ha } @Override - public boolean canConnect(byte side) { + public boolean canConnectData(byte side) { return isInputFacing(side); } @Override - public iConnectsToDataPipe getNext(iConnectsToDataPipe source) { + public IConnectsToDataPipe getNext(IConnectsToDataPipe source) { return null; } - public void setContents(InventoryDataPacket q){ - if(q==null){ + public void setContents(InventoryDataPacket iIn){ + if(iIn==null){ stacks=null; }else{ - if(q.getContent().length>0) { - stacks = q.getContent(); + if(iIn.getContent().length>0) { + stacks = iIn.getContent(); delDelay=true; }else{ stacks=null; @@ -145,7 +145,7 @@ public class GT_MetaTileEntity_Hatch_InputDataItems extends GT_MetaTileEntity_Ha public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); NBTTagCompound stacksTag=new NBTTagCompound(); - if(stacks!=null && stacks.length>0){ + if(stacks!=null){ stacksTag.setInteger("count",stacks.length); for(int i=0;i0); } } @@ -206,10 +210,20 @@ public class GT_MetaTileEntity_Hatch_InputDataItems extends GT_MetaTileEntity_Ha }; } + @Override + public boolean isGivingInformation() { + return true; + } + @Override public String[] getInfoData() { return new String[]{ "Content: Stack Count: "+(stacks==null?0:stacks.length) }; } + + @Override + public byte getColorization() { + return getBaseMetaTileEntity().getColorization(); + } } 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 f53826667d..64de93f1d7 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 @@ -2,7 +2,7 @@ package com.github.technus.tectech.thing.metaTileEntity.hatch; import com.github.technus.tectech.dataFramework.QuantumDataPacket; import com.github.technus.tectech.thing.metaTileEntity.pipe.GT_MetaTileEntity_Pipe_Data; -import com.github.technus.tectech.thing.metaTileEntity.pipe.iConnectsToDataPipe; +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; @@ -27,11 +27,6 @@ public class GT_MetaTileEntity_Hatch_OutputData extends GT_MetaTileEntity_Hatch_ return new GT_MetaTileEntity_Hatch_OutputData(mName, mTier, mDescription, mTextures); } - @Override - protected QuantumDataPacket loadPacketFromNBT(NBTTagCompound nbt) { - return new QuantumDataPacket(nbt); - } - @Override public boolean isOutputFacing(byte aSide) { return aSide == getBaseMetaTileEntity().getFrontFacing(); @@ -42,29 +37,33 @@ public class GT_MetaTileEntity_Hatch_OutputData extends GT_MetaTileEntity_Hatch_ return false; } + @Override + public boolean isSimpleMachine() { + return true; + } + @Override public boolean isDataInputFacing(byte side) { return isInputFacing(side); } @Override - public boolean isSimpleMachine() { - return true; + protected QuantumDataPacket loadPacketFromNBT(NBTTagCompound nbt) { + return new QuantumDataPacket(nbt); } @Override - public boolean canConnect(byte side) { + public boolean canConnectData(byte side) { return isOutputFacing(side); } @Override public void moveAround(IGregTechTileEntity aBaseMetaTileEntity) { - iConnectsToDataPipe current = this, source = this, next; + IConnectsToDataPipe current = this, source = this, next; int range = 0; while ((next = current.getNext(source)) != null && range++ < 1000) { if (next instanceof GT_MetaTileEntity_Hatch_InputData) { - ((GT_MetaTileEntity_Hatch_InputData) next).q = q; - ((GT_MetaTileEntity_Hatch_InputData) next).delDelay = true; + ((GT_MetaTileEntity_Hatch_InputData) next).setContents(q); break; } source = current; @@ -74,27 +73,23 @@ public class GT_MetaTileEntity_Hatch_OutputData extends GT_MetaTileEntity_Hatch_ } @Override - public iConnectsToDataPipe getNext(iConnectsToDataPipe source/*==this*/) { + 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()) { + if (next == null) { return null; } IMetaTileEntity meta = next.getMetaTileEntity(); - if (meta instanceof iConnectsToDataPipe) { - if (meta instanceof GT_MetaTileEntity_Hatch_InputData - && 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; - } + if (meta instanceof GT_MetaTileEntity_Pipe_Data){ + return (IConnectsToDataPipe) meta; + }else if (meta instanceof GT_MetaTileEntity_Hatch_InputData && + ((GT_MetaTileEntity_Hatch_InputData) meta).getColorization()==color && + ((GT_MetaTileEntity_Hatch_InputData) meta).canConnectData(GT_Utility.getOppositeSide(base.getFrontFacing()))) { + return (IConnectsToDataPipe) meta; } return null; } 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 index 330c19d391..1cf0bd4f09 100644 --- 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 @@ -2,7 +2,7 @@ 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 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; @@ -82,19 +82,24 @@ public class GT_MetaTileEntity_Hatch_OutputDataItems extends GT_MetaTileEntity_H return false; } + @Override + protected InventoryDataPacket loadPacketFromNBT(NBTTagCompound nbt) { + return new InventoryDataPacket(nbt); + } + @Override public boolean isDataInputFacing(byte side) { return isInputFacing(side); } @Override - public boolean canConnect(byte side) { + public boolean canConnectData(byte side) { return isOutputFacing(side); } @Override public void moveAround(IGregTechTileEntity aBaseMetaTileEntity) { - iConnectsToDataPipe current = this, source = this, next; + IConnectsToDataPipe current = this, source = this, next; int range = 0; while ((next = current.getNext(source)) != null && range++ < 1000) { if (next instanceof GT_MetaTileEntity_Hatch_InputDataItems) { @@ -108,33 +113,24 @@ public class GT_MetaTileEntity_Hatch_OutputDataItems extends GT_MetaTileEntity_H } @Override - public iConnectsToDataPipe getNext(iConnectsToDataPipe source/*==this*/) { + 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()) { + if (next == null) { 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; - } + if (meta instanceof GT_MetaTileEntity_Pipe_Data){ + return (IConnectsToDataPipe) meta; + }else if (meta instanceof GT_MetaTileEntity_Hatch_InputDataItems && + ((GT_MetaTileEntity_Hatch_InputDataItems) meta).getColorization()==color && + ((GT_MetaTileEntity_Hatch_InputDataItems) meta).canConnectData(GT_Utility.getOppositeSide(base.getFrontFacing()))) { + 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 1a6c776949..6e977b12e6 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 @@ -7,6 +7,8 @@ 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_InputDataItems; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputDataItems; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM; 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; @@ -18,6 +20,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_DataAccess; import net.minecraft.block.Block; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; @@ -82,6 +85,16 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB return new ITexture[]{Textures.BlockIcons.casingTexturePages[texturePage][1]}; } + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_MultiMachineEM(aPlayerInventory, aBaseMetaTileEntity, true, false, true); + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachineEM(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "EMDisplay.png", true, false, true);//todo texture + } + @Override public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { eDataAccessHatches.clear(); @@ -99,6 +112,16 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB return description; } + @Override + protected void parametersLoadDefault_EM() { + for(int i=0;i<10;i++){ + setStatusOfParameterIn(i,0,STATUS_UNUSED); + setStatusOfParameterIn(i,1,STATUS_UNUSED); + setStatusOfParameterOut(i,0,STATUS_UNUSED); + setStatusOfParameterOut(i,1,STATUS_UNUSED); + } + } + @Override public boolean checkRecipe_EM(ItemStack itemStack) { if (eDataAccessHatches.size() > 0 && eStacksDataOutputs.size() > 0) { 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 4e50b7f4dc..5234de7129 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 @@ -8,7 +8,6 @@ import gregtech.api.enums.Dyes; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IColoredTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.metatileentity.MetaPipeEntity; @@ -29,7 +28,7 @@ import static gregtech.api.enums.Dyes.MACHINE_METAL; /** * Created by Tec on 26.02.2017. */ -public class GT_MetaTileEntity_Pipe_Data extends MetaPipeEntity implements iConnectsToDataPipe { +public class GT_MetaTileEntity_Pipe_Data extends MetaPipeEntity implements IConnectsToDataPipe { private static Textures.BlockIcons.CustomIcon EMpipe; private static Textures.BlockIcons.CustomIcon EMbar; public byte connectionCount = 0; @@ -110,54 +109,49 @@ public class GT_MetaTileEntity_Pipe_Data extends MetaPipeEntity implements iConn if ((aTick & 31) == 31) { mConnections = 0; connectionCount = 0; + byte myColor=aBaseMetaTileEntity.getColorization(); if (aBaseMetaTileEntity.getColorization() < 0) { return; } for (byte b0 = 0, b1; b0 < 6; b0++) { b1 = GT_Utility.getOppositeSide(b0); - //if (!aBaseMetaTileEntity.getCoverBehaviorAtSide(b0).alwaysLookConnected(b0, aBaseMetaTileEntity.getCoverIDAtSide(b0), aBaseMetaTileEntity.getCoverDataAtSide(b0), aBaseMetaTileEntity)) { TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(b0); - if (tTileEntity instanceof IColoredTileEntity) { - //if (aBaseMetaTileEntity.getColorization() >= 0) { - byte tColor = ((IColoredTileEntity) tTileEntity).getColorization(); - if (tColor != aBaseMetaTileEntity.getColorization()) { + if (tTileEntity instanceof IConnectsToDataPipe) { + byte tColor = ((IConnectsToDataPipe) tTileEntity).getColorization(); + if (tColor != myColor) { continue; } - //} - } - if (tTileEntity instanceof iConnectsToDataPipe && ((iConnectsToDataPipe) tTileEntity).canConnect(b1)) { - mConnections |= 1 << b0; - connectionCount++; - } else if (tTileEntity instanceof IGregTechTileEntity && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof iConnectsToDataPipe) { - if (//((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(b1).alwaysLookConnected(b1, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(b1), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(b1), ((IGregTechTileEntity) tTileEntity)) || - ((iConnectsToDataPipe) ((IGregTechTileEntity) tTileEntity).getMetaTileEntity()).canConnect(b1)) { + if(((IConnectsToDataPipe) tTileEntity).canConnectData(b1)){ mConnections |= 1 << b0; connectionCount++; } + }else if(tTileEntity instanceof IGregTechTileEntity){ + IMetaTileEntity meta=((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); + if(meta instanceof IConnectsToDataPipe){ + byte tColor = ((IConnectsToDataPipe) meta).getColorization(); + if (tColor != myColor) { + continue; + } + if(((IConnectsToDataPipe) meta).canConnectData(b1)){ + mConnections |= 1 << b0; + connectionCount++; + } + } } - //} - //else { - // mConnections |= (1 << b0); - // if (mOld != mConnections) { - // connectionCount++; - // mOld = mConnections; - // } - //} } } - } else if (aBaseMetaTileEntity.isClientSide() && GT_Client.changeDetected == 4) { aBaseMetaTileEntity.issueTextureUpdate(); } } @Override - public boolean canConnect(byte side) { + public boolean canConnectData(byte side) { return true; } @Override - public iConnectsToDataPipe getNext(iConnectsToDataPipe source) { + public IConnectsToDataPipe getNext(IConnectsToDataPipe source) { if (connectionCount != 2) { return null; } @@ -165,18 +159,21 @@ public class GT_MetaTileEntity_Pipe_Data extends MetaPipeEntity implements iConn if ((mConnections & 1 << b) == 0) { continue;//if not connected continue } - IGregTechTileEntity next = getBaseMetaTileEntity().getIGregTechTileEntityAtSide(b); - if (next == null) { - continue; - } - IMetaTileEntity meta = next.getMetaTileEntity(); - if (meta instanceof iConnectsToDataPipe && meta != source) { - if (meta instanceof GT_MetaTileEntity_Pipe_Data && - ((GT_MetaTileEntity_Pipe_Data) meta).connectionCount == 2) { - return (iConnectsToDataPipe) meta; + TileEntity next = getBaseMetaTileEntity().getTileEntityAtSide(b); + if (next instanceof IConnectsToDataPipe && next != source) { + if(((IConnectsToDataPipe) next).isDataInputFacing(GT_Utility.getOppositeSide(b))){ + return (IConnectsToDataPipe) next; } - if(((iConnectsToDataPipe) meta).isDataInputFacing(GT_Utility.getOppositeSide(b))){ - return (iConnectsToDataPipe) meta; + }else if(next instanceof IGregTechTileEntity) { + IMetaTileEntity meta = ((IGregTechTileEntity) next).getMetaTileEntity(); + if (meta instanceof IConnectsToDataPipe && meta != source) { + 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; + } } } } @@ -235,4 +232,9 @@ public class GT_MetaTileEntity_Pipe_Data extends MetaPipeEntity implements iConn public boolean isDataInputFacing(byte side) { return true; } + + @Override + public byte getColorization() { + return getBaseMetaTileEntity().getColorization(); + } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/GT_MetaTileEntity_Pipe_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/GT_MetaTileEntity_Pipe_EM.java index 3d1b5f6fb9..6c339bdc59 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/GT_MetaTileEntity_Pipe_EM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/GT_MetaTileEntity_Pipe_EM.java @@ -29,7 +29,7 @@ import static gregtech.api.enums.Dyes.MACHINE_METAL; /** * Created by Tec on 26.02.2017. */ -public class GT_MetaTileEntity_Pipe_EM extends MetaPipeEntity implements iConnectsToEMpipe { +public class GT_MetaTileEntity_Pipe_EM extends MetaPipeEntity implements IConnectsToEMpipe { private static Textures.BlockIcons.CustomIcon EMpipe; private static Textures.BlockIcons.CustomIcon EMcandy; public byte connectionCount = 0; @@ -125,12 +125,12 @@ public class GT_MetaTileEntity_Pipe_EM extends MetaPipeEntity implements iConnec } //} } - if (tTileEntity instanceof iConnectsToEMpipe && ((iConnectsToEMpipe) tTileEntity).canConnect(b1)) { + if (tTileEntity instanceof IConnectsToEMpipe && ((IConnectsToEMpipe) tTileEntity).canConnect(b1)) { mConnections |= 1 << b0; connectionCount++; - } else if (tTileEntity instanceof IGregTechTileEntity && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof iConnectsToEMpipe) { + } else if (tTileEntity instanceof IGregTechTileEntity && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof IConnectsToEMpipe) { if (//((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(b1).alwaysLookConnected(b1, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(b1), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(b1), ((IGregTechTileEntity) tTileEntity)) || - ((iConnectsToEMpipe) ((IGregTechTileEntity) tTileEntity).getMetaTileEntity()).canConnect(b1)) { + ((IConnectsToEMpipe) ((IGregTechTileEntity) tTileEntity).getMetaTileEntity()).canConnect(b1)) { mConnections |= 1 << b0; connectionCount++; } 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 new file mode 100644 index 0000000000..def0795ba3 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/IConnectsToDataPipe.java @@ -0,0 +1,14 @@ +package com.github.technus.tectech.thing.metaTileEntity.pipe; + +/** + * Created by Tec on 26.02.2017. + */ +public interface IConnectsToDataPipe { + boolean canConnectData(byte side); + + IConnectsToDataPipe getNext(IConnectsToDataPipe source); + + boolean isDataInputFacing(byte side); + + byte getColorization(); +} diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/IConnectsToEMpipe.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/IConnectsToEMpipe.java new file mode 100644 index 0000000000..cacdb41500 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/IConnectsToEMpipe.java @@ -0,0 +1,8 @@ +package com.github.technus.tectech.thing.metaTileEntity.pipe; + +/** + * Created by Tec on 26.02.2017. + */ +public interface IConnectsToEMpipe { + boolean canConnect(byte side); +} 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 deleted file mode 100644 index 95043b2ae1..0000000000 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToDataPipe.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.github.technus.tectech.thing.metaTileEntity.pipe; - -/** - * Created by Tec on 26.02.2017. - */ -public interface iConnectsToDataPipe { - boolean canConnect(byte side); - - iConnectsToDataPipe getNext(iConnectsToDataPipe source); - - boolean isDataInputFacing(byte side); -} diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToEMpipe.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToEMpipe.java deleted file mode 100644 index d8fd912455..0000000000 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/iConnectsToEMpipe.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.github.technus.tectech.thing.metaTileEntity.pipe; - -/** - * Created by Tec on 26.02.2017. - */ -public interface iConnectsToEMpipe { - boolean canConnect(byte side); -} -- cgit