diff options
Diffstat (limited to 'src/Java/binnie/core/machines/MachineComponent.java')
-rw-r--r-- | src/Java/binnie/core/machines/MachineComponent.java | 61 |
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); + } +} |