diff --git a/src/main/java/cofh/api/CoFHAPIProps.java b/src/main/java/cofh/api/CoFHAPIProps.java deleted file mode 100755 index becea23e0..000000000 --- a/src/main/java/cofh/api/CoFHAPIProps.java +++ /dev/null @@ -1,11 +0,0 @@ -package cofh.api; - -public class CoFHAPIProps { - - private CoFHAPIProps() { - - } - - public static final String VERSION = "1.8.9R1.2.0B1"; - -} diff --git a/src/main/java/cofh/api/energy/EnergyStorage.java b/src/main/java/cofh/api/energy/EnergyStorage.java deleted file mode 100755 index d5e34000c..000000000 --- a/src/main/java/cofh/api/energy/EnergyStorage.java +++ /dev/null @@ -1,161 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.nbt.NBTTagCompound; - -/** - * Reference implementation of {@link IEnergyStorage}. Use/extend this or implement your own. - * - * @author King Lemming - */ -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 (energy > capacity) { - energy = capacity; - } - return this; - } - - public NBTTagCompound writeToNBT(NBTTagCompound nbt) { - - if (energy < 0) { - energy = 0; - } - nbt.setInteger("Energy", energy); - return nbt; - } - - public EnergyStorage setCapacity(int capacity) { - - this.capacity = capacity; - - if (energy > capacity) { - energy = capacity; - } - return this; - } - - public EnergyStorage setMaxTransfer(int maxTransfer) { - - setMaxReceive(maxTransfer); - setMaxExtract(maxTransfer); - return this; - } - - public EnergyStorage setMaxReceive(int maxReceive) { - - this.maxReceive = maxReceive; - return this; - } - - public EnergyStorage setMaxExtract(int maxExtract) { - - this.maxExtract = maxExtract; - return this; - } - - public int getMaxReceive() { - - return maxReceive; - } - - public int getMaxExtract() { - - return maxExtract; - } - - /** - * This function is included to allow for server to client sync. Do not call this externally to the containing Tile Entity, as not all IEnergyHandlers - * are guaranteed to have it. - * - * @param energy - */ - public void setEnergyStored(int energy) { - - this.energy = energy; - - if (this.energy > capacity) { - this.energy = capacity; - } else if (this.energy < 0) { - this.energy = 0; - } - } - - /** - * This function is included to allow the containing tile to directly and efficiently modify the energy contained in the EnergyStorage. Do not rely on this - * externally, as not all IEnergyHandlers are guaranteed to have it. - * - * @param energy - */ - public void modifyEnergyStored(int energy) { - - this.energy += energy; - - if (this.energy > capacity) { - this.energy = capacity; - } else if (this.energy < 0) { - this.energy = 0; - } - } - - /* IEnergyStorage */ - @Override - public int receiveEnergy(int maxReceive, boolean simulate) { - - int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive)); - - if (!simulate) { - energy += energyReceived; - } - return energyReceived; - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate) { - - int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); - - if (!simulate) { - energy -= energyExtracted; - } - return energyExtracted; - } - - @Override - public int getEnergyStored() { - - return energy; - } - - @Override - public int getMaxEnergyStored() { - - return capacity; - } - -} diff --git a/src/main/java/cofh/api/energy/IEnergyConnection.java b/src/main/java/cofh/api/energy/IEnergyConnection.java deleted file mode 100755 index b33a9d90a..000000000 --- a/src/main/java/cofh/api/energy/IEnergyConnection.java +++ /dev/null @@ -1,21 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.util.EnumFacing; - - -/** - * Implement this interface on TileEntities which should connect to energy transportation blocks. This is intended for blocks which generate energy but do not - * accept it; otherwise just use IEnergyHandler. - *
- * Note that {@link IEnergyHandler} is an extension of this. - * - * @author King Lemming - */ -public interface IEnergyConnection { - - /** - * Returns TRUE if the TileEntity can connect on a given side. - */ - boolean canConnectEnergy(EnumFacing from); - -} diff --git a/src/main/java/cofh/api/energy/IEnergyContainerItem.java b/src/main/java/cofh/api/energy/IEnergyContainerItem.java deleted file mode 100755 index f5d2ebfd9..000000000 --- a/src/main/java/cofh/api/energy/IEnergyContainerItem.java +++ /dev/null @@ -1,45 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.item.ItemStack; - -/** - * Implement this interface on Item classes that support external manipulation of their internal energy storages. - *
- * A reference implementation is provided {@link ItemEnergyContainer}. - * - * @author King Lemming - */ -public interface IEnergyContainerItem { - - /** - * Adds energy to a container item. Returns the quantity of energy that was accepted. This should always return 0 if the item cannot be externally charged. - * - * @param container ItemStack to be charged. - * @param maxReceive Maximum amount of energy to be sent into the item. - * @param simulate If TRUE, the charge will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) received by the item. - */ - int receiveEnergy(ItemStack container, int maxReceive, boolean simulate); - - /** - * Removes energy from a container item. Returns the quantity of energy that was removed. This should always return 0 if the item cannot be externally - * discharged. - * - * @param container ItemStack to be discharged. - * @param maxExtract Maximum amount of energy to be extracted from the item. - * @param simulate If TRUE, the discharge will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted from the item. - */ - int extractEnergy(ItemStack container, int maxExtract, boolean simulate); - - /** - * Get the amount of energy currently stored in the container item. - */ - int getEnergyStored(ItemStack container); - - /** - * Get the max amount of energy that can be stored in the container item. - */ - int getMaxEnergyStored(ItemStack container); - -} diff --git a/src/main/java/cofh/api/energy/IEnergyHandler.java b/src/main/java/cofh/api/energy/IEnergyHandler.java deleted file mode 100755 index 1d5dc5576..000000000 --- a/src/main/java/cofh/api/energy/IEnergyHandler.java +++ /dev/null @@ -1,26 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.util.EnumFacing; - -/** - * Implement this interface on Tile Entities which should handle energy, generally storing it in one or more internal {@link IEnergyStorage} objects. - *
- * A reference implementation is provided {@link TileEnergyHandler}. - *
- * Note that {@link IEnergyReceiver} and {@link IEnergyProvider} are extensions of this. - * - * @author King Lemming - */ -public interface IEnergyHandler extends IEnergyConnection { - - /** - * Returns the amount of energy currently stored. - */ - int getEnergyStored(EnumFacing from); - - /** - * Returns the maximum amount of energy that can be stored. - */ - int getMaxEnergyStored(EnumFacing from); - -} diff --git a/src/main/java/cofh/api/energy/IEnergyProvider.java b/src/main/java/cofh/api/energy/IEnergyProvider.java deleted file mode 100755 index 784726a04..000000000 --- a/src/main/java/cofh/api/energy/IEnergyProvider.java +++ /dev/null @@ -1,25 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.util.EnumFacing; - - -/** - * Implement this interface on Tile Entities which should provide energy, generally storing it in one or more internal {@link IEnergyStorage} objects. - *
- * A reference implementation is provided {@link TileEnergyHandler}. - * - * @author King Lemming - */ -public interface IEnergyProvider extends IEnergyHandler { - - /** - * Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider. - * - * @param from Orientation the energy is extracted from. - * @param maxExtract Maximum amount of energy to extract. - * @param simulate If TRUE, the extraction will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted. - */ - int extractEnergy(EnumFacing from, int maxExtract, boolean simulate); - -} diff --git a/src/main/java/cofh/api/energy/IEnergyReceiver.java b/src/main/java/cofh/api/energy/IEnergyReceiver.java deleted file mode 100755 index c2b654029..000000000 --- a/src/main/java/cofh/api/energy/IEnergyReceiver.java +++ /dev/null @@ -1,25 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.util.EnumFacing; - - -/** - * Implement this interface on Tile Entities which should receive energy, generally storing it in one or more internal {@link IEnergyStorage} objects. - *
- * A reference implementation is provided {@link TileEnergyHandler}.
- *
- * @author King Lemming
- */
-public interface IEnergyReceiver extends IEnergyHandler {
-
- /**
- * Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver.
- *
- * @param from Orientation the energy is received from.
- * @param maxReceive Maximum amount of energy to receive.
- * @param simulate If TRUE, the charge will only be simulated.
- * @return Amount of energy that was (or would have been, if simulated) received.
- */
- int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate);
-
-}
diff --git a/src/main/java/cofh/api/energy/IEnergyStorage.java b/src/main/java/cofh/api/energy/IEnergyStorage.java
deleted file mode 100755
index b69f1df79..000000000
--- a/src/main/java/cofh/api/energy/IEnergyStorage.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package cofh.api.energy;
-
-/**
- * An energy storage is the unit of interaction with Energy inventories.
- * This is not to be implemented on TileEntities. This is for internal use only.
- *
- * A reference implementation can be found at {@link EnergyStorage}. - * - * @author King Lemming - */ -public interface IEnergyStorage { - - /** - * Adds energy to the storage. Returns quantity of energy that was accepted. - * - * @param maxReceive Maximum amount of energy to be inserted. - * @param simulate If TRUE, the insertion will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) accepted by the storage. - */ - int receiveEnergy(int maxReceive, boolean simulate); - - /** - * Removes energy from the storage. Returns quantity of energy that was removed. - * - * @param maxExtract Maximum amount of energy to be extracted. - * @param simulate If TRUE, the extraction will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted from the storage. - */ - int extractEnergy(int maxExtract, boolean simulate); - - /** - * Returns the amount of energy currently stored. - */ - int getEnergyStored(); - - /** - * Returns the maximum amount of energy that can be stored. - */ - int getMaxEnergyStored(); - -} diff --git a/src/main/java/cofh/api/energy/ItemEnergyContainer.java b/src/main/java/cofh/api/energy/ItemEnergyContainer.java deleted file mode 100755 index bdca3f0d5..000000000 --- a/src/main/java/cofh/api/energy/ItemEnergyContainer.java +++ /dev/null @@ -1,112 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -/** - * Reference implementation of {@link IEnergyContainerItem}. Use/extend this or implement your own. - * - * @author King Lemming - */ -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 ItemEnergyContainer setMaxTransfer(int maxTransfer) { - - setMaxReceive(maxTransfer); - setMaxExtract(maxTransfer); - return this; - } - - public ItemEnergyContainer setMaxReceive(int maxReceive) { - - this.maxReceive = maxReceive; - return this; - } - - public ItemEnergyContainer setMaxExtract(int maxExtract) { - - this.maxExtract = maxExtract; - return this; - } - - /* IEnergyContainerItem */ - @Override - public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) { - - if (!container.hasTagCompound()) { - container.setTagCompound(new NBTTagCompound()); - } - int energy = container.getTagCompound().getInteger("Energy"); - int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive)); - - if (!simulate) { - energy += energyReceived; - container.getTagCompound().setInteger("Energy", energy); - } - return energyReceived; - } - - @Override - public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) { - - if (container.getTagCompound() == null || !container.getTagCompound().hasKey("Energy")) { - return 0; - } - int energy = container.getTagCompound().getInteger("Energy"); - int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); - - if (!simulate) { - energy -= energyExtracted; - container.getTagCompound().setInteger("Energy", energy); - } - return energyExtracted; - } - - @Override - public int getEnergyStored(ItemStack container) { - - if (container.getTagCompound() == null || !container.getTagCompound().hasKey("Energy")) { - return 0; - } - return container.getTagCompound().getInteger("Energy"); - } - - @Override - public int getMaxEnergyStored(ItemStack container) { - - return capacity; - } - -} diff --git a/src/main/java/cofh/api/energy/TileEnergyHandler.java b/src/main/java/cofh/api/energy/TileEnergyHandler.java deleted file mode 100755 index 77c7ec787..000000000 --- a/src/main/java/cofh/api/energy/TileEnergyHandler.java +++ /dev/null @@ -1,67 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; - -/** - * Reference implementation of {@link IEnergyReceiver} and {@link IEnergyProvider}. Use/extend this or implement your own. - *
- * This class is really meant to summarize how each interface is properly used.
- *
- * @author King Lemming
- */
-public class TileEnergyHandler extends TileEntity implements IEnergyReceiver, IEnergyProvider {
-
- protected EnergyStorage storage = new EnergyStorage(32000);
-
- @Override
- public void readFromNBT(NBTTagCompound nbt) {
-
- super.readFromNBT(nbt);
- storage.readFromNBT(nbt);
- }
-
- @Override
- public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
-
- super.writeToNBT(nbt);
- storage.writeToNBT(nbt);
- return nbt;
- }
-
- /* IEnergyConnection */
- @Override
- public boolean canConnectEnergy(EnumFacing from) {
-
- return true;
- }
-
- /* IEnergyReceiver */
- @Override
- public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate) {
-
- return storage.receiveEnergy(maxReceive, simulate);
- }
-
- /* IEnergyProvider */
- @Override
- public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate) {
-
- return storage.extractEnergy(maxExtract, simulate);
- }
-
- /* IEnergyHandler */
- @Override
- public int getEnergyStored(EnumFacing from) {
-
- return storage.getEnergyStored();
- }
-
- @Override
- public int getMaxEnergyStored(EnumFacing from) {
-
- return storage.getMaxEnergyStored();
- }
-
-}
diff --git a/src/main/java/cofh/api/energy/package-info.java b/src/main/java/cofh/api/energy/package-info.java
deleted file mode 100755
index 21dca2485..000000000
--- a/src/main/java/cofh/api/energy/package-info.java
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * (C) 2014-2016 Team CoFH / CoFH / Cult of the Full Hub
- * http://www.teamcofh.com
- */
-@API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHAPI", provides = "CoFHAPI|energy")
-package cofh.api.energy;
-
-import cofh.api.CoFHAPIProps;
-import net.minecraftforge.fml.common.API;
-
diff --git a/src/main/java/cofh/api/package-info.java b/src/main/java/cofh/api/package-info.java
deleted file mode 100755
index e2847daad..000000000
--- a/src/main/java/cofh/api/package-info.java
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * (C) 2014-2016 Team CoFH / CoFH / Cult of the Full Hub
- * http://www.teamcofh.com
- */
-@API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHLib", provides = "CoFHAPI")
-package cofh.api;
-
-import net.minecraftforge.fml.common.API;
-
diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java
index b42841aab..5002c9221 100755
--- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java
+++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkMaster.java
@@ -1,6 +1,5 @@
package com.raoulvdberge.refinedstorage.api.network;
-import cofh.api.energy.EnergyStorage;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler;
@@ -25,11 +24,6 @@ import java.util.List;
* Represents a network master, usually is a controller.
*/
public interface INetworkMaster {
- /**
- * @return the energy storage of this network
- */
- EnergyStorage getEnergy();
-
/**
* @return the energy usage per tick of this network
*/
diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessCraftingMonitor.java
index fb80ba305..5759db6f9 100755
--- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessCraftingMonitor.java
+++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessCraftingMonitor.java
@@ -2,17 +2,17 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSGui;
-import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
-import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;
+import net.minecraftforge.energy.CapabilityEnergy;
+import net.minecraftforge.energy.IEnergyStorage;
public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
private INetworkItemHandler handler;
@@ -32,7 +32,7 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
@Override
public boolean onOpen(INetworkMaster network, EntityPlayer player, World controllerWorld, EnumHand hand) {
- if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE && RSItems.WIRELESS_CRAFTING_MONITOR.getEnergyStored(stack) <= RS.INSTANCE.config.wirelessCraftingMonitorOpenUsage) {
+ if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessCraftingMonitorOpenUsage) {
return false;
}
@@ -47,11 +47,11 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
public void drainEnergy(int energy) {
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE) {
- ItemWirelessGrid item = RSItems.WIRELESS_GRID;
+ IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
- item.extractEnergy(stack, energy, false);
+ energyStorage.extractEnergy(energy, false);
- if (item.getEnergyStored(stack) <= 0) {
+ if (energyStorage.getEnergyStored() <= 0) {
handler.onClose(player);
player.closeScreen();
diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java
index 2bffcaa2d..66656fadf 100755
--- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java
+++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java
@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSGui;
-import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
@@ -12,6 +11,8 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;
+import net.minecraftforge.energy.CapabilityEnergy;
+import net.minecraftforge.energy.IEnergyStorage;
public class NetworkItemWirelessGrid implements INetworkItem {
private INetworkItemHandler handler;
@@ -31,7 +32,7 @@ public class NetworkItemWirelessGrid implements INetworkItem {
@Override
public boolean onOpen(INetworkMaster network, EntityPlayer player, World controllerWorld, EnumHand hand) {
- if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE && RSItems.WIRELESS_GRID.getEnergyStored(stack) <= RS.INSTANCE.config.wirelessGridOpenUsage) {
+ if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessGridOpenUsage) {
return false;
}
@@ -46,11 +47,11 @@ public class NetworkItemWirelessGrid implements INetworkItem {
public void drainEnergy(int energy) {
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) {
- ItemWirelessGrid item = RSItems.WIRELESS_GRID;
+ IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
- item.extractEnergy(stack, energy, false);
+ energyStorage.extractEnergy(energy, false);
- if (item.getEnergyStored(stack) <= 0) {
+ if (energyStorage.getEnergyStored() <= 0) {
handler.onClose(player);
player.closeScreen();
diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java
index b1cf49d1a..d87d33747 100755
--- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java
+++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java
@@ -94,7 +94,7 @@ public class BlockController extends BlockBase {
NBTTagCompound tag = stack.getTagCompound();
if (tag != null && tag.hasKey(TileController.NBT_ENERGY)) {
- controller.getEnergy().receiveEnergy(tag.getInteger(TileController.NBT_ENERGY), false);
+ controller.getEnergy().setEnergyStored(tag.getInteger(TileController.NBT_ENERGY));
}
}
diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ControllerEnergyForge.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ControllerEnergyForge.java
index a0ad337ad..75fe3bfb9 100755
--- a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ControllerEnergyForge.java
+++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ControllerEnergyForge.java
@@ -1,42 +1,18 @@
package com.raoulvdberge.refinedstorage.integration.forgeenergy;
-import com.raoulvdberge.refinedstorage.tile.TileController;
-import net.minecraftforge.energy.IEnergyStorage;
+import com.raoulvdberge.refinedstorage.RS;
+import net.minecraftforge.energy.EnergyStorage;
-public class ControllerEnergyForge implements IEnergyStorage {
- private TileController controller;
-
- public ControllerEnergyForge(TileController controller) {
- this.controller = controller;
+public class ControllerEnergyForge extends EnergyStorage {
+ public ControllerEnergyForge() {
+ super(RS.INSTANCE.config.controllerCapacity, Integer.MAX_VALUE, 0);
}
- @Override
- public int receiveEnergy(int maxReceive, boolean simulate) {
- return controller.getEnergy().receiveEnergy(maxReceive, simulate);
+ public void setMaxEnergyStored(int capacity) {
+ this.capacity = capacity;
}
- @Override
- public int extractEnergy(int maxExtract, boolean simulate) {
- return controller.getEnergy().extractEnergy(maxExtract, simulate);
- }
-
- @Override
- public int getEnergyStored() {
- return controller.getEnergy().getEnergyStored();
- }
-
- @Override
- public int getMaxEnergyStored() {
- return controller.getEnergy().getMaxEnergyStored();
- }
-
- @Override
- public boolean canExtract() {
- return false;
- }
-
- @Override
- public boolean canReceive() {
- return true;
+ public void setEnergyStored(int energy) {
+ this.energy = energy;
}
}
diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/NetworkItemEnergyForge.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/NetworkItemEnergyForge.java
index 762cfbcd5..93e4dd741 100755
--- a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/NetworkItemEnergyForge.java
+++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/NetworkItemEnergyForge.java
@@ -1,43 +1,47 @@
package com.raoulvdberge.refinedstorage.integration.forgeenergy;
-import com.raoulvdberge.refinedstorage.RSItems;
import net.minecraft.item.ItemStack;
-import net.minecraftforge.energy.IEnergyStorage;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraftforge.energy.EnergyStorage;
+
+public class NetworkItemEnergyForge extends EnergyStorage {
+ private static final String NBT_ENERGY = "Energy";
-public class NetworkItemEnergyForge implements IEnergyStorage {
private ItemStack stack;
- public NetworkItemEnergyForge(ItemStack stack) {
+ public NetworkItemEnergyForge(ItemStack stack, int capacity) {
+ super(capacity, Integer.MAX_VALUE, Integer.MAX_VALUE);
+
this.stack = stack;
}
@Override
public int receiveEnergy(int maxReceive, boolean simulate) {
- return RSItems.WIRELESS_GRID.receiveEnergy(stack, maxReceive, simulate);
+ int received = super.receiveEnergy(maxReceive, simulate);
+
+ if (received > 0 && !simulate) {
+ if (!stack.hasTagCompound()) {
+ stack.setTagCompound(new NBTTagCompound());
+ }
+
+ stack.getTagCompound().setInteger(NBT_ENERGY, getEnergyStored());
+ }
+
+ return received;
}
@Override
public int extractEnergy(int maxExtract, boolean simulate) {
- return RSItems.WIRELESS_GRID.extractEnergy(stack, maxExtract, simulate);
- }
+ int extracted = super.extractEnergy(maxExtract, simulate);
- @Override
- public int getEnergyStored() {
- return RSItems.WIRELESS_GRID.getEnergyStored(stack);
- }
+ if (extracted > 0 && !simulate) {
+ if (!stack.hasTagCompound()) {
+ stack.setTagCompound(new NBTTagCompound());
+ }
- @Override
- public int getMaxEnergyStored() {
- return RSItems.WIRELESS_GRID.getMaxEnergyStored(stack);
- }
+ stack.getTagCompound().setInteger(NBT_ENERGY, getEnergyStored());
+ }
- @Override
- public boolean canExtract() {
- return true;
- }
-
- @Override
- public boolean canReceive() {
- return true;
+ return extracted;
}
}
diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ControllerEnergyTesla.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ControllerEnergyTesla.java
index 271b19243..de70b7129 100755
--- a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ControllerEnergyTesla.java
+++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ControllerEnergyTesla.java
@@ -1,13 +1,13 @@
package com.raoulvdberge.refinedstorage.integration.tesla;
-import cofh.api.energy.EnergyStorage;
+import com.raoulvdberge.refinedstorage.integration.forgeenergy.ControllerEnergyForge;
import net.darkhax.tesla.api.ITeslaConsumer;
import net.darkhax.tesla.api.ITeslaHolder;
public class ControllerEnergyTesla implements ITeslaHolder, ITeslaConsumer {
- private EnergyStorage energy;
+ private ControllerEnergyForge energy;
- public ControllerEnergyTesla(EnergyStorage energy) {
+ public ControllerEnergyTesla(ControllerEnergyForge energy) {
this.energy = energy;
}
diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/NetworkItemEnergyTesla.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/NetworkItemEnergyTesla.java
index 836f383cd..88d54c542 100755
--- a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/NetworkItemEnergyTesla.java
+++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/NetworkItemEnergyTesla.java
@@ -1,9 +1,9 @@
package com.raoulvdberge.refinedstorage.integration.tesla;
-import com.raoulvdberge.refinedstorage.RSItems;
import net.darkhax.tesla.api.ITeslaConsumer;
import net.darkhax.tesla.api.ITeslaHolder;
import net.minecraft.item.ItemStack;
+import net.minecraftforge.energy.CapabilityEnergy;
public class NetworkItemEnergyTesla implements ITeslaHolder, ITeslaConsumer {
private ItemStack stack;
@@ -14,16 +14,16 @@ public class NetworkItemEnergyTesla implements ITeslaHolder, ITeslaConsumer {
@Override
public long getStoredPower() {
- return RSItems.WIRELESS_GRID.getEnergyStored(stack);
+ return stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored();
}
@Override
public long getCapacity() {
- return RSItems.WIRELESS_GRID.getMaxEnergyStored(stack);
+ return stack.getCapability(CapabilityEnergy.ENERGY, null).getMaxEnergyStored();
}
@Override
public long givePower(long power, boolean simulated) {
- return RSItems.WIRELESS_GRID.receiveEnergy(stack, (int) power, simulated);
+ return stack.getCapability(CapabilityEnergy.ENERGY, null).receiveEnergy((int) power, simulated);
}
}
diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkItem.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkItem.java
index 63630d484..e02cf4224 100755
--- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkItem.java
+++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkItem.java
@@ -1,7 +1,5 @@
package com.raoulvdberge.refinedstorage.item;
-import cofh.api.energy.ItemEnergyContainer;
-import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
import com.raoulvdberge.refinedstorage.integration.forgeenergy.NetworkItemEnergyForge;
@@ -25,11 +23,12 @@ import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import net.minecraftforge.energy.CapabilityEnergy;
+import net.minecraftforge.energy.IEnergyStorage;
import javax.annotation.Nullable;
import java.util.List;
-public abstract class ItemNetworkItem extends ItemEnergyContainer implements INetworkItemProvider {
+public abstract class ItemNetworkItem extends ItemBase implements INetworkItemProvider {
public static final int TYPE_NORMAL = 0;
public static final int TYPE_CREATIVE = 1;
@@ -39,13 +38,12 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
private static final String NBT_DIMENSION_ID = "DimensionID";
public ItemNetworkItem(String name) {
- super(3200);
+ super(name);
- setRegistryName(RS.ID, name);
setMaxDamage(3200);
setMaxStackSize(1);
setHasSubtypes(true);
- setCreativeTab(RS.INSTANCE.tab);
+
addPropertyOverride(new ResourceLocation("connected"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f);
}
@@ -89,7 +87,9 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
@Override
public double getDurabilityForDisplay(ItemStack stack) {
- return 1D - ((double) getEnergyStored(stack) / (double) getMaxEnergyStored(stack));
+ IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY, null);
+
+ return 1D - ((double) energy.getEnergyStored() / (double) energy.getMaxEnergyStored());
}
@Override
@@ -107,7 +107,10 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
list.add(new ItemStack(item, 1, TYPE_NORMAL));
ItemStack fullyCharged = new ItemStack(item, 1, TYPE_NORMAL);
- receiveEnergy(fullyCharged, getMaxEnergyStored(fullyCharged), false);
+
+ IEnergyStorage energy = fullyCharged.getCapability(CapabilityEnergy.ENERGY, null);
+ energy.receiveEnergy(energy.getMaxEnergyStored(), false);
+
list.add(fullyCharged);
list.add(new ItemStack(item, 1, TYPE_CREATIVE));
@@ -118,7 +121,9 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
super.addInformation(stack, player, tooltip, advanced);
if (stack.getItemDamage() != TYPE_CREATIVE) {
- tooltip.add(I18n.format("misc.refinedstorage:energy_stored", getEnergyStored(stack), getMaxEnergyStored(stack)));
+ IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY, null);
+
+ tooltip.add(I18n.format("misc.refinedstorage:energy_stored", energy.getEnergyStored(), energy.getMaxEnergyStored()));
}
if (isValid(stack)) {
@@ -187,16 +192,6 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
return super.shouldCauseReequipAnimation(oldStack, newStack, slotChanged);
}
- @Override
- public String getUnlocalizedName() {
- return "item." + RS.ID + ":" + getRegistryName().getResourcePath();
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack) {
- return getUnlocalizedName() + "." + stack.getItemDamage();
- }
-
public boolean isValid(ItemStack stack) {
return stack.hasTagCompound()
&& stack.getTagCompound().hasKey(NBT_CONTROLLER_X)
@@ -221,7 +216,7 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
@Override
public