diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2017-01-17 19:41:46 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2017-01-17 19:41:46 +1000 |
commit | 5834a266fdf425ad56558db71691f9b3b0df5e31 (patch) | |
tree | eb2123fde62da27795417fbe9b6afcd31b383adf /src/Java/cofh/energy/EnergyStorage.java | |
parent | 289e41515842ec89d01bfa593504163f75d0950c (diff) | |
download | GT5-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.java | 129 |
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; + } +} |