diff options
Diffstat (limited to 'src/main/java/gregtech/api')
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)); + } +} |