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