aboutsummaryrefslogtreecommitdiff
path: root/src/Java/cofh/energy/EnergyStorage.java
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2017-01-17 19:41:46 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2017-01-17 19:41:46 +1000
commit5834a266fdf425ad56558db71691f9b3b0df5e31 (patch)
treeeb2123fde62da27795417fbe9b6afcd31b383adf /src/Java/cofh/energy/EnergyStorage.java
parent289e41515842ec89d01bfa593504163f75d0950c (diff)
downloadGT5-Unofficial-5834a266fdf425ad56558db71691f9b3b0df5e31.tar.gz
GT5-Unofficial-5834a266fdf425ad56558db71691f9b3b0df5e31.tar.bz2
GT5-Unofficial-5834a266fdf425ad56558db71691f9b3b0df5e31.zip
% Tried to improve the logic for the Tree Farmer, to support Forestry 4.
% Moved COFH API related files. + Added a child mod, for misc handling. $$ Borrowed some code from MFR, to attempt forestry support. (Credit left, will re-do if I even get it working).
Diffstat (limited to 'src/Java/cofh/energy/EnergyStorage.java')
-rw-r--r--src/Java/cofh/energy/EnergyStorage.java129
1 files changed, 129 insertions, 0 deletions
diff --git a/src/Java/cofh/energy/EnergyStorage.java b/src/Java/cofh/energy/EnergyStorage.java
new file mode 100644
index 0000000000..e48fc7b8ac
--- /dev/null
+++ b/src/Java/cofh/energy/EnergyStorage.java
@@ -0,0 +1,129 @@
+package cofh.energy;
+
+import net.minecraft.nbt.NBTTagCompound;
+
+public class EnergyStorage
+ implements IEnergyStorage
+{
+ protected int energy;
+ protected int capacity;
+ protected int maxReceive;
+ protected int maxExtract;
+
+ public EnergyStorage(int capacity)
+ {
+ this(capacity, capacity, capacity);
+ }
+
+ public EnergyStorage(int capacity, int maxTransfer)
+ {
+ this(capacity, maxTransfer, maxTransfer);
+ }
+
+ public EnergyStorage(int capacity, int maxReceive, int maxExtract)
+ {
+ this.capacity = capacity;
+ this.maxReceive = maxReceive;
+ this.maxExtract = maxExtract;
+ }
+
+ public EnergyStorage readFromNBT(NBTTagCompound nbt)
+ {
+ this.energy = nbt.getInteger("Energy");
+ if (this.energy > this.capacity) {
+ this.energy = this.capacity;
+ }
+ return this;
+ }
+
+ public NBTTagCompound writeToNBT(NBTTagCompound nbt)
+ {
+ if (this.energy < 0) {
+ this.energy = 0;
+ }
+ nbt.setInteger("Energy", this.energy);
+ return nbt;
+ }
+
+ public void setCapacity(int capacity)
+ {
+ this.capacity = capacity;
+ if (this.energy > capacity) {
+ this.energy = capacity;
+ }
+ }
+
+ public void setMaxTransfer(int maxTransfer)
+ {
+ setMaxReceive(maxTransfer);
+ setMaxExtract(maxTransfer);
+ }
+
+ public void setMaxReceive(int maxReceive)
+ {
+ this.maxReceive = maxReceive;
+ }
+
+ public void setMaxExtract(int maxExtract)
+ {
+ this.maxExtract = maxExtract;
+ }
+
+ public int getMaxReceive()
+ {
+ return this.maxReceive;
+ }
+
+ public int getMaxExtract()
+ {
+ return this.maxExtract;
+ }
+
+ public void setEnergyStored(int energy)
+ {
+ this.energy = energy;
+ if (this.energy > this.capacity) {
+ this.energy = this.capacity;
+ } else if (this.energy < 0) {
+ this.energy = 0;
+ }
+ }
+
+ public void modifyEnergyStored(int energy)
+ {
+ this.energy += energy;
+ if (this.energy > this.capacity) {
+ this.energy = this.capacity;
+ } else if (this.energy < 0) {
+ this.energy = 0;
+ }
+ }
+
+ public int receiveEnergy(int maxReceive, boolean simulate)
+ {
+ int energyReceived = Math.min(this.capacity - this.energy, Math.min(this.maxReceive, maxReceive));
+ if (!simulate) {
+ this.energy += energyReceived;
+ }
+ return energyReceived;
+ }
+
+ public int extractEnergy(int maxExtract, boolean simulate)
+ {
+ int energyExtracted = Math.min(this.energy, Math.min(this.maxExtract, maxExtract));
+ if (!simulate) {
+ this.energy -= energyExtracted;
+ }
+ return energyExtracted;
+ }
+
+ public int getEnergyStored()
+ {
+ return this.energy;
+ }
+
+ public int getMaxEnergyStored()
+ {
+ return this.capacity;
+ }
+}