aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/core/machines/MachineComponent.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/binnie/core/machines/MachineComponent.java')
-rw-r--r--src/Java/binnie/core/machines/MachineComponent.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/Java/binnie/core/machines/MachineComponent.java b/src/Java/binnie/core/machines/MachineComponent.java
new file mode 100644
index 0000000000..3b90497fc3
--- /dev/null
+++ b/src/Java/binnie/core/machines/MachineComponent.java
@@ -0,0 +1,61 @@
+package binnie.core.machines;
+
+import binnie.Binnie;
+import binnie.core.network.packet.MachinePayload;
+import forestry.api.core.INBTTagable;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class MachineComponent
+ implements INBTTagable
+{
+ private IMachine machine;
+
+ public MachineComponent(IMachine machine)
+ {
+ setMachine(machine);
+ machine.addComponent(this);
+ }
+
+ public void setMachine(IMachine machine)
+ {
+ this.machine = machine;
+ }
+
+ public IMachine getMachine()
+ {
+ return this.machine;
+ }
+
+ public void readFromNBT(NBTTagCompound nbttagcompound) {}
+
+ public void writeToNBT(NBTTagCompound nbttagcompound) {}
+
+ public void onUpdate() {}
+
+ public Class[] getComponentInterfaces()
+ {
+ return Binnie.Machine.getComponentInterfaces(getClass());
+ }
+
+ public void onInventoryUpdate() {}
+
+ public final MachinePayload getPayload()
+ {
+ return new MachinePayload(Binnie.Machine.getNetworkID(getClass()));
+ }
+
+ public void recieveData(MachinePayload payload) {}
+
+ public MachineUtil getUtil()
+ {
+ return getMachine().getMachineUtil();
+ }
+
+ public void onDestruction() {}
+
+ public IInventory getInventory()
+ {
+ return (IInventory)getMachine().getInterface(IInventory.class);
+ }
+}