aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java6
-rw-r--r--src/main/java/gregtech/api/enums/Textures.java9
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java2
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java11
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java26
-rw-r--r--src/main/java/gregtech/api/net/GT_Packet_SetConfigurationCircuit_Bus.java61
6 files changed, 111 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index 59641d16d7..483d5c3f99 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -1898,7 +1898,11 @@ public enum ItemList implements IItemContainer {
Circuit_Parts_InductorASMD,
Circuit_Parts_InductorXSMD,
- VOLUMETRIC_FLASK;
+ VOLUMETRIC_FLASK,
+
+ Hatch_Input_Bus_ME,
+ Hatch_CraftingInput_Bus_ME
+ ;
public static final ItemList[]
DYE_ONLY_ITEMS = {
diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java
index 08beb1a25d..54727ea269 100644
--- a/src/main/java/gregtech/api/enums/Textures.java
+++ b/src/main/java/gregtech/api/enums/Textures.java
@@ -1262,7 +1262,14 @@ public class Textures {
LARGETURBINE_ADVGAS_EMPTY6,
LARGETURBINE_ADVGAS_EMPTY7,
LARGETURBINE_ADVGAS_EMPTY8,
- LARGETURBINE_ADVGAS_EMPTY9;
+ LARGETURBINE_ADVGAS_EMPTY9,
+
+ OVERLAY_ME_HATCH_ACTIVE,
+ OVERLAY_ME_INPUT_HATCH,
+ OVERLAY_ME_INPUT_HATCH_ACTIVE,
+ OVERLAY_ME_CRAFTING_HATCH,
+ OVERLAY_ME_CRAFTING_HATCH_ACTIVE
+ ;
/**
* Icon for Fresh CFoam
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java
index 6d99a24347..82dbc3afd9 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java
@@ -179,4 +179,6 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan
}
//To change to other page -> use the setter method -> updateTexture
+
+ public int getCircuitSlot() { return -1; }
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java
index 039c35c268..fb5eec7880 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java
@@ -1,5 +1,6 @@
package gregtech.api.metatileentity.implementations;
+import appeng.util.Platform;
import gregtech.GT_Mod;
import gregtech.api.gui.*;
import gregtech.api.interfaces.ITexture;
@@ -34,6 +35,10 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch {
this(id, name, nameRegional, tier, getSlots(tier));
}
+ protected GT_MetaTileEntity_Hatch_InputBus(int id, String name, String nameRegional, int tier, int slots, String[] description) {
+ super(id, name, nameRegional, tier, slots, description);
+ }
+
public GT_MetaTileEntity_Hatch_InputBus(int id, String name, String nameRegional, int tier, int slots) {
super(id, name, nameRegional, tier, slots, ArrayExt.of(
"Item Input for Multiblocks",
@@ -248,4 +253,10 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch {
return i == aIndex;
return mInventory[aIndex] == null;
}
+
+ public void startRecipeProcessing() {
+ }
+
+ public void endRecipeProcessing() {
+ }
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index a31be046b3..e29499b0b1 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -350,6 +350,14 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
}
+ protected boolean checkRecipe()
+ {
+ startRecipeProcessing();
+ boolean result = checkRecipe(mInventory[1]);
+ endRecipeProcessing();
+ return result;
+ }
+
protected void runMachine(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (mMaxProgresstime > 0 && doRandomMaintenanceDamage()) {
if (onRunningTick(mInventory[1])) {
@@ -375,7 +383,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
mProgresstime = 0;
mMaxProgresstime = 0;
mEfficiencyIncrease = 0;
- if (aBaseMetaTileEntity.isAllowedToWork()) checkRecipe(mInventory[1]);
+ if (aBaseMetaTileEntity.isAllowedToWork()) {
+ checkRecipe();
+ }
if (mOutputFluids != null && mOutputFluids.length > 0) {
if (mOutputFluids.length > 1) {
try {
@@ -390,7 +400,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()) {
if (aBaseMetaTileEntity.isAllowedToWork()) {
- if(checkRecipe(mInventory[1])) {
+ if (checkRecipe()) {
markDirty();
}
}
@@ -906,6 +916,18 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
if (isValidMetaTileEntity(tHatch)) tHatch.updateSlots();
}
+ protected void startRecipeProcessing()
+ {
+ for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses)
+ if (isValidMetaTileEntity(tHatch)) tHatch.startRecipeProcessing();
+ }
+
+ protected void endRecipeProcessing()
+ {
+ for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses)
+ if (isValidMetaTileEntity(tHatch)) tHatch.endRecipeProcessing();
+ }
+
protected static <T extends GT_MetaTileEntity_Hatch> T identifyHatch(IGregTechTileEntity aTileEntity, int aBaseCasingIndex, Class<T> clazz) {
if (aTileEntity == null) return null;
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
diff --git a/src/main/java/gregtech/api/net/GT_Packet_SetConfigurationCircuit_Bus.java b/src/main/java/gregtech/api/net/GT_Packet_SetConfigurationCircuit_Bus.java
new file mode 100644
index 0000000000..06344f1656
--- /dev/null
+++ b/src/main/java/gregtech/api/net/GT_Packet_SetConfigurationCircuit_Bus.java
@@ -0,0 +1,61 @@
+package gregtech.api.net;
+
+import com.google.common.io.ByteArrayDataInput;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+import net.minecraftforge.common.DimensionManager;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
+import gregtech.api.util.GT_Utility;
+import gregtech.api.util.ISerializableObject;
+import gregtech.common.gui.GT_Container_InputBus_ME;
+
+public class GT_Packet_SetConfigurationCircuit_Bus extends GT_Packet_SetConfigurationCircuit {
+ public GT_Packet_SetConfigurationCircuit_Bus() {
+ super();
+ }
+
+ public GT_Packet_SetConfigurationCircuit_Bus(IGregTechTileEntity tile, ItemStack circuit) {
+ super(tile, circuit);
+ }
+
+ public GT_Packet_SetConfigurationCircuit_Bus(int x, short y, int z, ItemStack circuit) {
+ super(x, y, z, circuit);
+ }
+
+ @Override
+ public byte getPacketID() {
+ return 18;
+ }
+ @Override
+ public void process(IBlockAccess aWorld) {
+ World world = DimensionManager.getWorld(dimId);
+ if (world == null) return;
+ TileEntity tile = world.getTileEntity(mX, mY, mZ);
+ if (!(tile instanceof IGregTechTileEntity) || ((IGregTechTileEntity) tile).isDead())
+ return;
+ IMetaTileEntity mte = ((IGregTechTileEntity) tile).getMetaTileEntity();
+ if (!(mte instanceof GT_MetaTileEntity_Hatch)) return;
+ GT_MetaTileEntity_Hatch hatch = (GT_MetaTileEntity_Hatch) mte;
+ GregTech_API.getConfigurationCircuitList(hatch.mTier).stream()
+ .filter(stack -> GT_Utility.areStacksEqual(stack, circuit))
+ .findFirst()
+ .ifPresent(stack -> ((IGregTechTileEntity) tile).setInventorySlotContents(hatch.getCircuitSlot(), stack));
+ }
+
+ @Override
+ public GT_Packet_New decode(ByteArrayDataInput aData) {
+ return new GT_Packet_SetConfigurationCircuit_Bus(
+ aData.readInt(),
+ aData.readShort(),
+ aData.readInt(),
+ ISerializableObject.readItemStackFromGreggyByteBuf(aData));
+ }
+}