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 | |
| 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')
| -rw-r--r-- | src/Java/cofh/energy/EnergyStorage.java | 129 | ||||
| -rw-r--r-- | src/Java/cofh/energy/IEnergyConnection.java | 8 | ||||
| -rw-r--r-- | src/Java/cofh/energy/IEnergyContainerItem.java | 14 | ||||
| -rw-r--r-- | src/Java/cofh/energy/IEnergyHandler.java | 15 | ||||
| -rw-r--r-- | src/Java/cofh/energy/IEnergyProvider.java | 13 | ||||
| -rw-r--r-- | src/Java/cofh/energy/IEnergyReceiver.java | 13 | ||||
| -rw-r--r-- | src/Java/cofh/energy/IEnergyStorage.java | 12 | ||||
| -rw-r--r-- | src/Java/cofh/energy/ItemEnergyContainer.java | 98 | ||||
| -rw-r--r-- | src/Java/cofh/energy/TileEnergyHandler.java | 49 | 
9 files changed, 351 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; +  } +} diff --git a/src/Java/cofh/energy/IEnergyConnection.java b/src/Java/cofh/energy/IEnergyConnection.java new file mode 100644 index 0000000000..96055c2282 --- /dev/null +++ b/src/Java/cofh/energy/IEnergyConnection.java @@ -0,0 +1,8 @@ +package cofh.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +public abstract interface IEnergyConnection +{ +  public abstract boolean canConnectEnergy(ForgeDirection paramForgeDirection); +} diff --git a/src/Java/cofh/energy/IEnergyContainerItem.java b/src/Java/cofh/energy/IEnergyContainerItem.java new file mode 100644 index 0000000000..1cce2619ae --- /dev/null +++ b/src/Java/cofh/energy/IEnergyContainerItem.java @@ -0,0 +1,14 @@ +package cofh.energy; + +import net.minecraft.item.ItemStack; + +public abstract interface IEnergyContainerItem +{ +  public abstract int receiveEnergy(ItemStack paramItemStack, int paramInt, boolean paramBoolean); +   +  public abstract int extractEnergy(ItemStack paramItemStack, int paramInt, boolean paramBoolean); +   +  public abstract int getEnergyStored(ItemStack paramItemStack); +   +  public abstract int getMaxEnergyStored(ItemStack paramItemStack); +} diff --git a/src/Java/cofh/energy/IEnergyHandler.java b/src/Java/cofh/energy/IEnergyHandler.java new file mode 100644 index 0000000000..89ea0b4eb7 --- /dev/null +++ b/src/Java/cofh/energy/IEnergyHandler.java @@ -0,0 +1,15 @@ +package cofh.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +public abstract interface IEnergyHandler +  extends IEnergyProvider, IEnergyReceiver +{ +  public abstract int receiveEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); +   +  public abstract int extractEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); +   +  public abstract int getEnergyStored(ForgeDirection paramForgeDirection); +   +  public abstract int getMaxEnergyStored(ForgeDirection paramForgeDirection); +} diff --git a/src/Java/cofh/energy/IEnergyProvider.java b/src/Java/cofh/energy/IEnergyProvider.java new file mode 100644 index 0000000000..1f92549c53 --- /dev/null +++ b/src/Java/cofh/energy/IEnergyProvider.java @@ -0,0 +1,13 @@ +package cofh.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +public abstract interface IEnergyProvider +  extends IEnergyConnection +{ +  public abstract int extractEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); +   +  public abstract int getEnergyStored(ForgeDirection paramForgeDirection); +   +  public abstract int getMaxEnergyStored(ForgeDirection paramForgeDirection); +} diff --git a/src/Java/cofh/energy/IEnergyReceiver.java b/src/Java/cofh/energy/IEnergyReceiver.java new file mode 100644 index 0000000000..537b4679d5 --- /dev/null +++ b/src/Java/cofh/energy/IEnergyReceiver.java @@ -0,0 +1,13 @@ +package cofh.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +public abstract interface IEnergyReceiver +  extends IEnergyConnection +{ +  public abstract int receiveEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); +   +  public abstract int getEnergyStored(ForgeDirection paramForgeDirection); +   +  public abstract int getMaxEnergyStored(ForgeDirection paramForgeDirection); +} diff --git a/src/Java/cofh/energy/IEnergyStorage.java b/src/Java/cofh/energy/IEnergyStorage.java new file mode 100644 index 0000000000..d105df55c1 --- /dev/null +++ b/src/Java/cofh/energy/IEnergyStorage.java @@ -0,0 +1,12 @@ +package cofh.energy; + +public abstract interface IEnergyStorage +{ +  public abstract int receiveEnergy(int paramInt, boolean paramBoolean); +   +  public abstract int extractEnergy(int paramInt, boolean paramBoolean); +   +  public abstract int getEnergyStored(); +   +  public abstract int getMaxEnergyStored(); +} diff --git a/src/Java/cofh/energy/ItemEnergyContainer.java b/src/Java/cofh/energy/ItemEnergyContainer.java new file mode 100644 index 0000000000..697532abe3 --- /dev/null +++ b/src/Java/cofh/energy/ItemEnergyContainer.java @@ -0,0 +1,98 @@ +package cofh.energy; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class ItemEnergyContainer +  extends Item +  implements IEnergyContainerItem +{ +  protected int capacity; +  protected int maxReceive; +  protected int maxExtract; +   +  public ItemEnergyContainer() {} +   +  public ItemEnergyContainer(int capacity) +  { +    this(capacity, capacity, capacity); +  } +   +  public ItemEnergyContainer(int capacity, int maxTransfer) +  { +    this(capacity, maxTransfer, maxTransfer); +  } +   +  public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) +  { +    this.capacity = capacity; +    this.maxReceive = maxReceive; +    this.maxExtract = maxExtract; +  } +   +  public ItemEnergyContainer setCapacity(int capacity) +  { +    this.capacity = capacity; +    return this; +  } +   +  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 receiveEnergy(ItemStack container, int maxReceive, boolean simulate) +  { +    if (container.stackTagCompound == null) { +      container.stackTagCompound = new NBTTagCompound(); +    } +    int energy = container.stackTagCompound.getInteger("Energy"); +    int energyReceived = Math.min(this.capacity - energy, Math.min(this.maxReceive, maxReceive)); +    if (!simulate) +    { +      energy += energyReceived; +      container.stackTagCompound.setInteger("Energy", energy); +    } +    return energyReceived; +  } +   +  public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) +  { +    if ((container.stackTagCompound == null) || (!container.stackTagCompound.hasKey("Energy"))) { +      return 0; +    } +    int energy = container.stackTagCompound.getInteger("Energy"); +    int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); +    if (!simulate) +    { +      energy -= energyExtracted; +      container.stackTagCompound.setInteger("Energy", energy); +    } +    return energyExtracted; +  } +   +  public int getEnergyStored(ItemStack container) +  { +    if ((container.stackTagCompound == null) || (!container.stackTagCompound.hasKey("Energy"))) { +      return 0; +    } +    return container.stackTagCompound.getInteger("Energy"); +  } +   +  public int getMaxEnergyStored(ItemStack container) +  { +    return this.capacity; +  } +} diff --git a/src/Java/cofh/energy/TileEnergyHandler.java b/src/Java/cofh/energy/TileEnergyHandler.java new file mode 100644 index 0000000000..24cd3c0e34 --- /dev/null +++ b/src/Java/cofh/energy/TileEnergyHandler.java @@ -0,0 +1,49 @@ +package cofh.energy; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEnergyHandler +  extends TileEntity +  implements IEnergyHandler +{ +  protected EnergyStorage storage = new EnergyStorage(32000); +   +  public void readFromNBT(NBTTagCompound nbt) +  { +    super.readFromNBT(nbt); +    this.storage.readFromNBT(nbt); +  } +   +  public void writeToNBT(NBTTagCompound nbt) +  { +    super.writeToNBT(nbt); +    this.storage.writeToNBT(nbt); +  } +   +  public boolean canConnectEnergy(ForgeDirection from) +  { +    return true; +  } +   +  public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) +  { +    return this.storage.receiveEnergy(maxReceive, simulate); +  } +   +  public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) +  { +    return this.storage.extractEnergy(maxExtract, simulate); +  } +   +  public int getEnergyStored(ForgeDirection from) +  { +    return this.storage.getEnergyStored(); +  } +   +  public int getMaxEnergyStored(ForgeDirection from) +  { +    return this.storage.getMaxEnergyStored(); +  } +} | 
