aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/github/technus/tectech/loader/MachineLoader.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_DataConnector.java6
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_InputDataAccess.java18
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MEtaTileEntity_EM_dataBank.java79
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();