aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/multitileentity/interfaces')
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java45
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java11
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java19
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/UpgradableModularMuTE.java10
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/UpgradableMuTE.java12
5 files changed, 63 insertions, 34 deletions
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java
index 8535c50790..58af918c50 100644
--- a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java
@@ -1,16 +1,24 @@
package gregtech.api.multitileentity.interfaces;
+import java.util.UUID;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import net.minecraft.util.ChunkCoordinates;
import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidStack;
-import com.gtnewhorizons.modularui.api.screen.ModularWindow;
-import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
+import gregtech.api.enums.InventoryType;
+import gregtech.api.gui.GUIHost;
+import gregtech.api.logic.FluidInventoryLogic;
+import gregtech.api.logic.ItemInventoryLogic;
+import gregtech.api.logic.interfaces.FluidInventoryLogicHost;
+import gregtech.api.logic.interfaces.ItemInventoryLogicHost;
+import gregtech.api.logic.interfaces.PowerLogicHost;
+import gregtech.api.multitileentity.enums.MultiTileCasingPurpose;
-import gregtech.api.logic.PowerLogic;
-
-public interface IMultiBlockController extends IMultiTileEntity, IMultiBlockFluidHandler, IMultiBlockInventory {
+public interface IMultiBlockController
+ extends IMultiTileEntity, FluidInventoryLogicHost, ItemInventoryLogicHost, UpgradableMuTE, PowerLogicHost, GUIHost {
boolean checkStructure(boolean aForceReset);
@@ -20,25 +28,24 @@ public interface IMultiBlockController extends IMultiTileEntity, IMultiBlockFlui
@Override
ChunkCoordinates getCoords();
- FluidStack getDrainableFluid(ForgeDirection side);
-
- FluidStack getDrainableFluid(ForgeDirection side, Fluid fluid);
+ void registerCoveredPartOnSide(final ForgeDirection side, IMultiBlockPart part);
- boolean isLiquidInput(ForgeDirection side);
+ void unregisterCoveredPartOnSide(final ForgeDirection side, IMultiBlockPart part);
- boolean isLiquidOutput(ForgeDirection side);
+ void registerCaseWithPurpose(MultiTileCasingPurpose purpose, IMultiBlockPart part);
- void registerCoveredPartOnSide(final ForgeDirection side, IMultiBlockPart part);
+ void unregisterCaseWithPurpose(MultiTileCasingPurpose purpose, IMultiBlockPart part);
- void unregisterCoveredPartOnSide(final ForgeDirection side, IMultiBlockPart part);
+ UUID registerItemInventory(int slots, int tier, @Nonnull InventoryType type, boolean isUpgradeInventory);
- void registerInventory(String aName, String aID, int aInventorySize, int aType);
+ ItemInventoryLogic unregisterItemInventory(@Nonnull UUID id, @Nonnull InventoryType type);
- void unregisterInventory(String aName, String aID, int aType);
+ void changeItemInventoryDisplayName(@Nonnull UUID id, @Nullable String displayName, @Nonnull InventoryType type);
- void changeInventoryName(String aName, String aID, int aType);
+ UUID registerFluidInventory(int tanks, long capacity, int tier, @Nonnull InventoryType type,
+ boolean isUpgradeInventory);
- PowerLogic getPowerLogic(IMultiBlockPart part, ForgeDirection side);
+ FluidInventoryLogic unregisterFluidInventory(@Nonnull UUID id, @Nonnull InventoryType type);
- ModularWindow createWindowGUI(UIBuildContext buildContext);
+ void changeFluidInventoryDisplayName(@Nonnull UUID id, @Nullable String displayName, @Nonnull InventoryType type);
}
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java
index 017954f554..59d838fdeb 100644
--- a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java
@@ -1,9 +1,14 @@
package gregtech.api.multitileentity.interfaces;
+import java.util.UUID;
+
import net.minecraft.util.ChunkCoordinates;
import net.minecraftforge.common.util.ForgeDirection;
-public interface IMultiBlockPart extends IMultiTileEntity {
+import gregtech.api.logic.interfaces.FluidInventoryLogicHost;
+import gregtech.api.logic.interfaces.ItemInventoryLogicHost;
+
+public interface IMultiBlockPart extends IMultiTileEntity, ItemInventoryLogicHost, FluidInventoryLogicHost {
ChunkCoordinates getTargetPos();
@@ -13,5 +18,9 @@ public interface IMultiBlockPart extends IMultiTileEntity {
int getLockedInventoryIndex();
+ UUID getLockedInventory();
+
boolean tickCoverAtSide(ForgeDirection side, long aTickTimer);
+
+ boolean shouldTick(long tickTimer);
}
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java
index 7925ebd5b9..91803690fc 100644
--- a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java
@@ -17,18 +17,11 @@ import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.Explosion;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.IFluidHandler;
import cpw.mods.fml.common.Optional;
import gregtech.api.enums.Mods;
-import gregtech.api.interfaces.tileentity.IBasicEnergyContainer;
-import gregtech.api.interfaces.tileentity.IColoredTileEntity;
import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.interfaces.tileentity.IDebugableTileEntity;
-import gregtech.api.interfaces.tileentity.IEnergyConnected;
-import gregtech.api.interfaces.tileentity.IHasInventory;
-import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords;
-import gregtech.api.interfaces.tileentity.ITexturedTileEntity;
import gregtech.api.interfaces.tileentity.ITurnable;
import gregtech.api.multitileentity.MultiTileEntityBlockInternal;
import gregtech.api.multitileentity.MultiTileEntityItemInternal;
@@ -37,9 +30,7 @@ import gregtech.api.multitileentity.MultiTileEntityRegistry;
/*
* Heavily inspired by GT6
*/
-public interface IMultiTileEntity
- extends IHasWorldObjectAndCoords, ICoverable, ITurnable, IHasInventory, IEnergyConnected, IBasicEnergyContainer,
- IFluidHandler, ITexturedTileEntity, IDebugableTileEntity, IColoredTileEntity {
+public interface IMultiTileEntity extends ICoverable, ITurnable, IDebugableTileEntity {
/**
* Those two IDs HAVE to be saved inside the NBT of the TileEntity itself. They get set by the Registry itself, when
@@ -88,7 +79,7 @@ public interface IMultiTileEntity
void sendClientData(EntityPlayerMP aPlayer);
- boolean receiveClientEvent(int aEventID, int aValue);
+ boolean receiveClientData(int aEventID, int aValue);
void setShouldRefresh(boolean aShouldRefresh);
@@ -291,12 +282,12 @@ public interface IMultiTileEntity
interface IMTE_HasModes extends IMultiTileEntity {
- byte getMode();
+ int getMode();
- void setMode(byte aMode);
+ void setMode(int mode);
int getAllowedModes();
- void setAllowedModes(int aAllowedModes);
+ void setAllowedModes(int allowedModes);
}
}
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/UpgradableModularMuTE.java b/src/main/java/gregtech/api/multitileentity/interfaces/UpgradableModularMuTE.java
new file mode 100644
index 0000000000..3b4c3cb6f3
--- /dev/null
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/UpgradableModularMuTE.java
@@ -0,0 +1,10 @@
+package gregtech.api.multitileentity.interfaces;
+
+import gregtech.api.util.GT_StructureUtilityMuTE.UpgradeCasings;
+
+public interface UpgradableModularMuTE extends UpgradableMuTE {
+
+ void increaseMucCount(UpgradeCasings casingType, int tier);
+
+ void resetMucCount();
+}
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/UpgradableMuTE.java b/src/main/java/gregtech/api/multitileentity/interfaces/UpgradableMuTE.java
new file mode 100644
index 0000000000..c18852c95e
--- /dev/null
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/UpgradableMuTE.java
@@ -0,0 +1,12 @@
+package gregtech.api.multitileentity.interfaces;
+
+public interface UpgradableMuTE {
+
+ void setCleanroom(boolean isCleanroom);
+
+ void setWirelessSupport(boolean canUse);
+
+ void setLaserSupport(boolean canUse);
+
+ void setMaxAmperage(long amperage);
+}