aboutsummaryrefslogtreecommitdiff
path: root/src/Java/cofh/api
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-08-04 01:48:24 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-08-04 01:48:24 +1000
commitfeb1963f65a43ee3d8ff17e5601991f51143cd9e (patch)
tree8aaa357c5d9bc6fd41c9dfb138d9a6fed9a905ab /src/Java/cofh/api
parent14d8c3cd7cc73caed9c073f76307be6be5fa4f0f (diff)
downloadGT5-Unofficial-feb1963f65a43ee3d8ff17e5601991f51143cd9e.tar.gz
GT5-Unofficial-feb1963f65a43ee3d8ff17e5601991f51143cd9e.tar.bz2
GT5-Unofficial-feb1963f65a43ee3d8ff17e5601991f51143cd9e.zip
+ Added a universal battery, accepting both IC2 EU and RF, holding 100mil/400mil of each respectively. (The batteries internal buffer accepts or outputs either)
+ Added COFH Core api for RF power support. + Added basic work for the Sinter Furnace and some debug rendering classes.
Diffstat (limited to 'src/Java/cofh/api')
-rw-r--r--src/Java/cofh/api/energy/EnergyStorage.java129
-rw-r--r--src/Java/cofh/api/energy/IEnergyConnection.java8
-rw-r--r--src/Java/cofh/api/energy/IEnergyContainerItem.java14
-rw-r--r--src/Java/cofh/api/energy/IEnergyHandler.java15
-rw-r--r--src/Java/cofh/api/energy/IEnergyProvider.java13
-rw-r--r--src/Java/cofh/api/energy/IEnergyReceiver.java13
-rw-r--r--src/Java/cofh/api/energy/IEnergyStorage.java12
-rw-r--r--src/Java/cofh/api/energy/ItemEnergyContainer.java98
-rw-r--r--src/Java/cofh/api/energy/TileEnergyHandler.java49
-rw-r--r--src/Java/cofh/api/energy/package-info.java6
10 files changed, 357 insertions, 0 deletions
diff --git a/src/Java/cofh/api/energy/EnergyStorage.java b/src/Java/cofh/api/energy/EnergyStorage.java
new file mode 100644
index 0000000000..2aad94be72
--- /dev/null
+++ b/src/Java/cofh/api/energy/EnergyStorage.java
@@ -0,0 +1,129 @@
+package cofh.api.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/api/energy/IEnergyConnection.java b/src/Java/cofh/api/energy/IEnergyConnection.java
new file mode 100644
index 0000000000..b038c7edb2
--- /dev/null
+++ b/src/Java/cofh/api/energy/IEnergyConnection.java
@@ -0,0 +1,8 @@
+package cofh.api.energy;
+
+import net.minecraftforge.common.util.ForgeDirection;
+
+public abstract interface IEnergyConnection
+{
+ public abstract boolean canConnectEnergy(ForgeDirection paramForgeDirection);
+}
diff --git a/src/Java/cofh/api/energy/IEnergyContainerItem.java b/src/Java/cofh/api/energy/IEnergyContainerItem.java
new file mode 100644
index 0000000000..0d0a3cfe7f
--- /dev/null
+++ b/src/Java/cofh/api/energy/IEnergyContainerItem.java
@@ -0,0 +1,14 @@
+package cofh.api.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/api/energy/IEnergyHandler.java b/src/Java/cofh/api/energy/IEnergyHandler.java
new file mode 100644
index 0000000000..fb9aae3900
--- /dev/null
+++ b/src/Java/cofh/api/energy/IEnergyHandler.java
@@ -0,0 +1,15 @@
+package cofh.api.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/api/energy/IEnergyProvider.java b/src/Java/cofh/api/energy/IEnergyProvider.java
new file mode 100644
index 0000000000..c0a032db01
--- /dev/null
+++ b/src/Java/cofh/api/energy/IEnergyProvider.java
@@ -0,0 +1,13 @@
+package cofh.api.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/api/energy/IEnergyReceiver.java b/src/Java/cofh/api/energy/IEnergyReceiver.java
new file mode 100644
index 0000000000..20f177b01c
--- /dev/null
+++ b/src/Java/cofh/api/energy/IEnergyReceiver.java
@@ -0,0 +1,13 @@
+package cofh.api.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/api/energy/IEnergyStorage.java b/src/Java/cofh/api/energy/IEnergyStorage.java
new file mode 100644
index 0000000000..421a51dd15
--- /dev/null
+++ b/src/Java/cofh/api/energy/IEnergyStorage.java
@@ -0,0 +1,12 @@
+package cofh.api.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/api/energy/ItemEnergyContainer.java b/src/Java/cofh/api/energy/ItemEnergyContainer.java
new file mode 100644
index 0000000000..86defc0ae3
--- /dev/null
+++ b/src/Java/cofh/api/energy/ItemEnergyContainer.java
@@ -0,0 +1,98 @@
+package cofh.api.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/api/energy/TileEnergyHandler.java b/src/Java/cofh/api/energy/TileEnergyHandler.java
new file mode 100644
index 0000000000..8965adfccd
--- /dev/null
+++ b/src/Java/cofh/api/energy/TileEnergyHandler.java
@@ -0,0 +1,49 @@
+package cofh.api.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();
+ }
+}
diff --git a/src/Java/cofh/api/energy/package-info.java b/src/Java/cofh/api/energy/package-info.java
new file mode 100644
index 0000000000..90b2a99c40
--- /dev/null
+++ b/src/Java/cofh/api/energy/package-info.java
@@ -0,0 +1,6 @@
+package cofh.api.energy;
+
+import cpw.mods.fml.common.API;
+
+@API(apiVersion="1.7.10R1.0.0", owner="CoFHAPI", provides="CoFHAPI|energy")
+abstract interface package-info {}