diff options
author | Tec <daniel112092@gmail.com> | 2018-03-19 21:16:57 +0100 |
---|---|---|
committer | Tec <daniel112092@gmail.com> | 2018-03-19 21:16:57 +0100 |
commit | 0ba40893414b104ea562bfb26bce750ffee5de63 (patch) | |
tree | c2b635e10f31ab143f09cde6e0cfc53c157a8103 /src | |
parent | f4ebcb9c7e057ded50f4532c033583f48cacd75b (diff) | |
download | GT5-Unofficial-0ba40893414b104ea562bfb26bce750ffee5de63.tar.gz GT5-Unofficial-0ba40893414b104ea562bfb26bce750ffee5de63.tar.bz2 GT5-Unofficial-0ba40893414b104ea562bfb26bce750ffee5de63.zip |
Cleanup data pipe api
Diffstat (limited to 'src')
12 files changed, 170 insertions, 120 deletions
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<T extends DataPacket> extends GT_MetaTileEntity_Hatch implements iConnectsToDataPipe { +public abstract class GT_MetaTileEntity_Hatch_DataConnector<T extends DataPacket> 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<T extends DataPacket EnumChatFormatting.AQUA + "Must be painted to work" }; } + + @Override + public byte getColorization() { + return getBaseMetaTileEntity().getColorization(); + } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java index 0f78875bcc..3bd011342c 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_ElementalContainer.java @@ -4,7 +4,7 @@ import com.github.technus.tectech.TecTech; import com.github.technus.tectech.elementalMatter.core.cElementalInstanceStackMap; import com.github.technus.tectech.elementalMatter.core.iElementalInstanceContainer; import com.github.technus.tectech.elementalMatter.core.tElementalException; -import com.github.technus.tectech.thing.metaTileEntity.pipe.iConnectsToEMpipe; +import com.github.technus.tectech.thing.metaTileEntity.pipe.IConnectsToEMpipe; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.Dyes; @@ -29,7 +29,7 @@ import static gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Mult /** * Created by danie_000 on 11.12.2016. */ -public abstract class GT_MetaTileEntity_Hatch_ElementalContainer extends GT_MetaTileEntity_Hatch implements iElementalInstanceContainer, iConnectsToEMpipe { +public abstract class GT_MetaTileEntity_Hatch_ElementalContainer extends GT_MetaTileEntity_Hatch implements iElementalInstanceContainer, IConnectsToEMpipe { private static Textures.BlockIcons.CustomIcon EM_T_SIDES; private static Textures.BlockIcons.CustomIcon EM_T_ACTIVE; private static Textures.BlockIcons.CustomIcon EM_T_CONN; 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 c441efcf1f..6f3bad775e 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 @@ -1,7 +1,7 @@ package com.github.technus.tectech.thing.metaTileEntity.hatch; import com.github.technus.tectech.dataFramework.QuantumDataPacket; -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.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -11,7 +11,7 @@ import net.minecraft.nbt.NBTTagCompound; * Created by danie_000 on 27.10.2016. */ public class GT_MetaTileEntity_Hatch_InputData extends GT_MetaTileEntity_Hatch_DataConnector<QuantumDataPacket> { - 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;i<stacks.length;i++){ stacksTag.setTag(Integer.toString(i),stacks[i].writeToNBT(new NBTTagCompound())); @@ -187,12 +187,16 @@ public class GT_MetaTileEntity_Hatch_InputDataItems extends GT_MetaTileEntity_Ha public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPreTick(aBaseMetaTileEntity,aTick); if(MOVE_AT == aTick % 20) { - if (delDelay) { - delDelay = false; + if(stacks==null){ + getBaseMetaTileEntity().setActive(false); } else { - setContents(null); + getBaseMetaTileEntity().setActive(true); + if (delDelay) { + delDelay = false; + } else { + setContents(null); + } } - aBaseMetaTileEntity.setActive(stacks!=null && stacks.length>0); } } @@ -207,9 +211,19 @@ 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; @@ -28,11 +28,6 @@ public class GT_MetaTileEntity_Hatch_OutputData extends GT_MetaTileEntity_Hatch_ } @Override - protected QuantumDataPacket loadPacketFromNBT(NBTTagCompound nbt) { - return new QuantumDataPacket(nbt); - } - - @Override public boolean isOutputFacing(byte aSide) { return aSide == getBaseMetaTileEntity().getFrontFacing(); } @@ -43,28 +38,32 @@ public class GT_MetaTileEntity_Hatch_OutputData extends GT_MetaTileEntity_Hatch_ } @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; @@ -83,18 +83,23 @@ public class GT_MetaTileEntity_Hatch_OutputDataItems extends GT_MetaTileEntity_H } @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; @@ -83,6 +86,16 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB } @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(); eStacksDataOutputs.clear(); @@ -100,6 +113,16 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB } @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) { mEUt = -(int) V[7]; 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 index d8fd912455..cacdb41500 100644 --- 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 @@ -3,6 +3,6 @@ package com.github.technus.tectech.thing.metaTileEntity.pipe; /** * Created by Tec on 26.02.2017. */ -public interface iConnectsToEMpipe { +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); -} |