diff options
4 files changed, 69 insertions, 36 deletions
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 70bf8dcf4a..131f0e42c8 100644 --- a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java @@ -229,6 +229,7 @@ public class MachineLoader implements Runnable { Machine_Multi_Switch.set(new GT_MetaTileEntity_EM_switch(15310, "multimachine.em.switch", "Network Switch With QoS").getStackForm(1L)); Machine_Multi_Computer.set(new GT_MetaTileEntity_EM_computer(15311, "multimachine.em.computer", "Quantum Computer").getStackForm(1L)); Machine_Multi_Microwave.set(new GT_MetaTileEntity_TM_microwave(15312, "multimachine.tm.microwave", "Microwave Grinder").getStackForm(1L)); + Machine_Multi_DataBank.set(new GT_MEtaTileEntity_EM_dataBank(15313, "multimachine.em.databank", "Data Bank").getStackForm(1L)); Machine_Multi_EMjunction.set(new GT_MetaTileEntity_EM_junction(15320, "multimachine.em.junction", "Matter Junction").getStackForm(1L)); Machine_Multi_MatterToEM.set(new GT_MetaTileEntity_EM_quantizer(15321, "multimachine.em.mattertoem", "Matter Quantizer").getStackForm(1L)); @@ -240,7 +241,6 @@ public class MachineLoader implements Runnable { Machine_Multi_Scanner.set(new GT_MetaTileEntity_EM_scanner(15330, "multimachine.em.scanner", "Elemental Scanner").getStackForm(1L)); Machine_Multi_Research.set(new GT_MetaTileEntity_EM_research(15331, "multimachine.em.research", "Research station").getStackForm(1L)); - Machine_Multi_DataBank.set(new GT_MetaTileEntity_EM_research(15332, "multimachine.em.databank", "Data Bank").getStackForm(1L)); Machine_Multi_Collider.set(new GT_MetaTileEntity_EM_collider(15340, "multimachine.em.collider", "Matter Collider").getStackForm(1L)); 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 a2ffc03b6c..51a46c5892 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 @@ -25,9 +25,9 @@ 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 { - private static Textures.BlockIcons.CustomIcon EM_D_SIDES; - private static Textures.BlockIcons.CustomIcon EM_D_ACTIVE; - private static Textures.BlockIcons.CustomIcon EM_D_CONN; + public static Textures.BlockIcons.CustomIcon EM_D_SIDES; + public static Textures.BlockIcons.CustomIcon EM_D_ACTIVE; + public static Textures.BlockIcons.CustomIcon EM_D_CONN; public T q; 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 index ca0c04706b..760fc53330 100644 --- 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 @@ -3,10 +3,12 @@ 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; @@ -16,10 +18,14 @@ 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; + public boolean delDelay = true; private ItemStack[] stacks; public GT_MetaTileEntity_Hatch_InputDataAccess(int aID, String aName, String aNameRegional, int aTier) { @@ -33,6 +39,16 @@ public class GT_MetaTileEntity_Hatch_InputDataAccess extends GT_MetaTileEntity_H } @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; } 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 fc4ff8600f..e07bcda2dc 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 @@ -3,7 +3,9 @@ package com.github.technus.tectech.thing.metaTileEntity.multi; import com.github.technus.tectech.CommonValues; 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.multi.base.GT_MetaTileEntity_MultiblockBase_EM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; @@ -23,6 +25,7 @@ import net.minecraft.util.ResourceLocation; import java.util.ArrayList; import static com.github.technus.tectech.Util.StructureBuilderExtreme; +import static com.github.technus.tectech.Util.V; import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.textureOffset; import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.texturePage; import static com.github.technus.tectech.thing.casing.TT_Container_Casings.sBlockCasingsTT; @@ -33,19 +36,20 @@ public class GT_MEtaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB //region Structure private static final String[][] shape = new String[][]{ - {" "," . "," ",}, - {" "," 0 "," ",}, - {" "," "," ",}, + {"0 0","0 . 0","0 0",}, + {"0!!!0","01110","0!!!0",}, + {"0!!!0","0!!!0","0!!!0",}, }; - private static final Block[] blockType = new Block[]{sBlockCasingsTT}; - private static final byte[] blockMeta = new byte[]{3}; - private static final String[] addingMethods = new String[]{"addClassicToMachineList"}; - private static final short[] casingTextures = new short[]{textureOffset+1}; - private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT}; - private static final byte[] blockMetaFallback = new byte[]{1}; + private static final Block[] blockType = new Block[]{sBlockCasingsTT,sBlockCasingsTT}; + private static final byte[] blockMeta = new byte[]{2,1}; + private static final String[] addingMethods = new String[]{"addClassicToMachineList","addDataBankHatchToMachineList"}; + private static final short[] casingTextures = new short[]{textureOffset,textureOffset+1}; + private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT,sBlockCasingsTT}; + private static final byte[] blockMetaFallback = new byte[]{0,1}; private static final String[] description = new String[]{ EnumChatFormatting.AQUA+"Hint Details:", - "1 - Classic/Data Hatches or Computer casing", + "1 - Classic Hatches or high power casing", + "2 - Data Access/Data Bank Master Hatches or computer casing", }; //endregion @@ -80,12 +84,14 @@ public class GT_MEtaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB @Override public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { - return structureCheck_EM(shape, blockType, blockMeta, addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, 1, 1, 0); + eDataAccessHatches.clear(); + eStacksDataOutputs.clear(); + return structureCheck_EM(shape, blockType, blockMeta, addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, 2, 1, 0); } @Override public void construct(int stackSize, boolean hintsOnly) { - StructureBuilderExtreme(shape, blockType, blockMeta,1, 1, 0, getBaseMetaTileEntity(),this,hintsOnly); + StructureBuilderExtreme(shape, blockType, blockMeta,2, 1, 0, getBaseMetaTileEntity(),this,hintsOnly); } @Override @@ -95,13 +101,38 @@ public class GT_MEtaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB @Override public boolean checkRecipe_EM(ItemStack itemStack) { - + if (eDataAccessHatches.size() > 0 && eStacksDataOutputs.size() > 0) { + mEUt = -(int) V[7]; + eAmpereFlow = 1 + (eStacksDataOutputs.size() >> 2) + eDataAccessHatches.size(); + mMaxProgresstime = 20; + mEfficiencyIncrease = 10000; + return true; + } return false; } @Override public void outputAfterRecipe_EM() { - + ArrayList<ItemStack> stacks=new ArrayList<>(); + for(GT_MetaTileEntity_Hatch_DataAccess dataAccess:eDataAccessHatches){ + int count=dataAccess.getSizeInventory(); + for(int i=0;i<count;i++){ + ItemStack stack=dataAccess.getStackInSlot(i); + if(stack!=null){ + stacks.add(stack); + } + } + } + if(stacks.size()>0){ + ItemStack[] arr=stacks.toArray(new ItemStack[0]); + for(GT_MetaTileEntity_Hatch_OutputDataAccess hatch:eStacksDataOutputs){ + hatch.q=new InventoryDataPacket(arr); + } + }else{ + for(GT_MetaTileEntity_Hatch_OutputDataAccess hatch:eStacksDataOutputs){ + hatch.q=null; + } + } } @Override @@ -114,7 +145,7 @@ public class GT_MEtaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB } //NEW METHOD - public final boolean addStackDataOutputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + public final boolean addDataBankHatchToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { if (aTileEntity == null) { return false; } @@ -125,20 +156,7 @@ public class GT_MEtaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputDataAccess) { ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); return eStacksDataOutputs.add((GT_MetaTileEntity_Hatch_OutputDataAccess) aMetaTileEntity); - } - return false; - } - - //NEW METHOD - public final boolean addDataAccessToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false; - } - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DataAccess) { + }else if(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DataAccess && !(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputDataAccess)){ ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); return eDataAccessHatches.add((GT_MetaTileEntity_Hatch_DataAccess) aMetaTileEntity); } @@ -147,8 +165,7 @@ public class GT_MEtaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB public static void run(){ try { - adderMethodMap.put("addStackDataOutputToMachineList", GT_MEtaTileEntity_EM_dataBank.class.getMethod("addStackDataOutputToMachineList", IGregTechTileEntity.class, int.class)); - adderMethodMap.put("addDataAccessToMachineList", GT_MEtaTileEntity_EM_dataBank.class.getMethod("addDataAccessToMachineList", IGregTechTileEntity.class, int.class)); + adderMethodMap.put("addDataBankHatchToMachineList", GT_MEtaTileEntity_EM_dataBank.class.getMethod("addDataBankHatchToMachineList", IGregTechTileEntity.class, int.class)); } catch (NoSuchMethodException e) { if (TecTechConfig.DEBUG_MODE) { e.printStackTrace(); |