aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java')
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java b/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java
new file mode 100644
index 0000000000..99ec88c149
--- /dev/null
+++ b/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java
@@ -0,0 +1,44 @@
+package gregtech.api.interfaces.tileentity;
+
+import gregtech.api.util.GT_CoverBehavior;
+import net.minecraft.item.ItemStack;
+
+public interface ICoverable extends IRedstoneTileEntity, IHasInventory, IBasicEnergyContainer {
+ public boolean canPlaceCoverIDAtSide(byte aSide, int aID);
+
+ public boolean canPlaceCoverItemAtSide(byte aSide, ItemStack aCover);
+
+ public boolean dropCover(byte aSide, byte aDroppedSide, boolean aForced);
+
+ public void setCoverDataAtSide(byte aSide, int aData);
+
+ public void setCoverIDAtSide(byte aSide, int aID);
+
+ public void setCoverItemAtSide(byte aSide, ItemStack aCover);
+
+ public int getCoverDataAtSide(byte aSide);
+
+ public int getCoverIDAtSide(byte aSide);
+
+ public ItemStack getCoverItemAtSide(byte aSide);
+
+ public GT_CoverBehavior getCoverBehaviorAtSide(byte aSide);
+
+ /**
+ * For use by the regular MetaTileEntities. Returns the Cover Manipulated input Redstone.
+ * Don't use this if you are a Cover Behavior. Only for MetaTileEntities.
+ */
+ public byte getInternalInputRedstoneSignal(byte aSide);
+
+ /**
+ * For use by the regular MetaTileEntities. This makes it not conflict with Cover based Redstone Signals.
+ * Don't use this if you are a Cover Behavior. Only for MetaTileEntities.
+ */
+ public void setInternalOutputRedstoneSignal(byte aSide, byte aStrength);
+
+ /**
+ * Causes a general Cover Texture update.
+ * Sends 6 Integers to Client + causes @issueTextureUpdate()
+ */
+ public void issueCoverUpdate(byte aSide);
+} \ No newline at end of file