summaryrefslogtreecommitdiff
path: root/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java')
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java b/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
new file mode 100644
index 0000000..78f238a
--- /dev/null
+++ b/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
@@ -0,0 +1,69 @@
+package gregtech.api.interfaces.tileentity;
+
+/**
+ * For Machines which have Progress
+ */
+public interface IMachineProgress extends IHasWorldObjectAndCoords {
+ /**
+ * returns the Progress this Machine has made. Warning, this can also be negative!
+ */
+ public int getProgress();
+
+ /**
+ * returns the Progress the Machine needs to complete its task.
+ */
+ public int getMaxProgress();
+
+ /**
+ * increases the Progress of the Machine
+ */
+ public boolean increaseProgress(int aProgressAmountInTicks);
+
+ /**
+ * returns if the Machine currently does something.
+ */
+ public boolean hasThingsToDo();
+
+ /**
+ * returns if the Machine just got enableWorking called after being disabled.
+ * Used for Translocators, which need to check if they need to transfer immediately.
+ */
+ public boolean hasWorkJustBeenEnabled();
+
+ /**
+ * allows Machine to work
+ */
+ public void enableWorking();
+
+ /**
+ * disallows Machine to work
+ */
+ public void disableWorking();
+
+ /**
+ * if the Machine is allowed to Work
+ */
+ public boolean isAllowedToWork();
+
+ /**
+ * used to control Machines via Redstone Signal Strength by special Covers
+ * only Values between 0 and 15!
+ */
+ public void setWorkDataValue(byte aValue);
+
+ /**
+ * used to control Machines via Redstone Signal Strength by special Covers
+ * In case of 0 the Machine is very likely doing nothing, or is just not being controlled at all.
+ */
+ public byte getWorkDataValue();
+
+ /**
+ * gives you the Active Status of the Machine
+ */
+ public boolean isActive();
+
+ /**
+ * sets the visible Active Status of the Machine
+ */
+ public void setActive(boolean aActive);
+} \ No newline at end of file