diff --git a/src/main/java/cofh/api/CoFHAPIProps.java b/src/main/java/cofh/api/CoFHAPIProps.java deleted file mode 100644 index eb2e05ade..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 100644 index dd7dd3e02..000000000 --- a/src/main/java/cofh/api/energy/EnergyStorage.java +++ /dev/null @@ -1,162 +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 100644 index 29ef0a1ce..000000000 --- a/src/main/java/cofh/api/energy/IEnergyConnection.java +++ /dev/null @@ -1,22 +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 100644 index 3ef725765..000000000 --- a/src/main/java/cofh/api/energy/IEnergyContainerItem.java +++ /dev/null @@ -1,52 +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 100644 index 16b236e7a..000000000 --- a/src/main/java/cofh/api/energy/IEnergyHandler.java +++ /dev/null @@ -1,27 +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 100644 index ef0e09d06..000000000 --- a/src/main/java/cofh/api/energy/IEnergyProvider.java +++ /dev/null @@ -1,29 +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 100644 index 989e9baa5..000000000 --- a/src/main/java/cofh/api/energy/IEnergyReceiver.java +++ /dev/null @@ -1,29 +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 100644 index 414b26566..000000000 --- a/src/main/java/cofh/api/energy/IEnergyStorage.java +++ /dev/null @@ -1,46 +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 100644 index 0fb36dab6..000000000 --- a/src/main/java/cofh/api/energy/ItemEnergyContainer.java +++ /dev/null @@ -1,113 +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/package-info.java b/src/main/java/cofh/api/energy/package-info.java deleted file mode 100644 index da8566735..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 net.minecraftforge.fml.common.API; -import cofh.api.CoFHAPIProps; - diff --git a/src/main/java/cofh/api/package-info.java b/src/main/java/cofh/api/package-info.java deleted file mode 100644 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/de/ellpeck/actuallyadditions/mod/inventory/ContainerDrill.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerDrill.java index 3a9ff6e29..8a18246ad 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerDrill.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerDrill.java @@ -10,8 +10,6 @@ package de.ellpeck.actuallyadditions.mod.inventory; -import cofh.api.energy.IEnergyContainerItem; -import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotImmovable; import de.ellpeck.actuallyadditions.mod.items.ItemDrill; import de.ellpeck.actuallyadditions.mod.items.ItemDrillUpgrade; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerEnergizer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerEnergizer.java index f21cd0701..b24f9e781 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerEnergizer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerEnergizer.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.inventory; -import cofh.api.energy.IEnergyContainerItem; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; @@ -95,7 +94,7 @@ public class ContainerEnergizer extends Container{ //Other Slots in Inventory excluded else if(slot >= inventoryStart){ //Shift from Inventory - if(newStack.getItem() instanceof IEnergyContainerItem || (ActuallyAdditions.teslaLoaded && newStack.hasCapability(TeslaUtil.teslaConsumer, null)) || newStack.hasCapability(CapabilityEnergy.ENERGY, null)){ + if((ActuallyAdditions.teslaLoaded && newStack.hasCapability(TeslaUtil.teslaConsumer, null)) || newStack.hasCapability(CapabilityEnergy.ENERGY, null)){ if(!this.mergeItemStack(newStack, 0, 1, false)){ return StackUtil.getNull(); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerEnervator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerEnervator.java index ac502a72e..7052e235d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerEnervator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerEnervator.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.inventory; -import cofh.api.energy.IEnergyContainerItem; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; @@ -94,7 +93,7 @@ public class ContainerEnervator extends Container{ //Other Slots in Inventory excluded else if(slot >= inventoryStart){ //Shift from Inventory - if(newStack.getItem() instanceof IEnergyContainerItem || (ActuallyAdditions.teslaLoaded && newStack.hasCapability(TeslaUtil.teslaProducer, null)) || newStack.hasCapability(CapabilityEnergy.ENERGY, null)){ + if((ActuallyAdditions.teslaLoaded && newStack.hasCapability(TeslaUtil.teslaProducer, null)) || newStack.hasCapability(CapabilityEnergy.ENERGY, null)){ if(!this.mergeItemStack(newStack, 0, 1, false)){ return StackUtil.getNull(); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBattery.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBattery.java index a553eb14d..7a3eda3cf 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBattery.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBattery.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.items; -import cofh.api.energy.IEnergyContainerItem; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy; import de.ellpeck.actuallyadditions.mod.util.ModUtil; @@ -60,10 +59,7 @@ public class ItemBattery extends ItemEnergy{ int extractable = this.extractEnergy(stack, Integer.MAX_VALUE, true); int received = 0; - if(slot.getItem() instanceof IEnergyContainerItem){ - received = ((IEnergyContainerItem)slot.getItem()).receiveEnergy(slot, extractable, false); - } - else if(slot.hasCapability(CapabilityEnergy.ENERGY, null)){ + if(slot.hasCapability(CapabilityEnergy.ENERGY, null)){ IEnergyStorage cap = slot.getCapability(CapabilityEnergy.ENERGY, null); if(cap != null){ received = cap.receiveEnergy(extractable, false); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java index d9f0efd77..b19f5dd97 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.items; -import cofh.api.energy.IEnergyContainerItem; import com.google.common.collect.Multimap; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheColoredLampColors; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java index 054c73f70..5d9a3a9fd 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java @@ -10,13 +10,9 @@ package de.ellpeck.actuallyadditions.mod.items.base; -import cofh.api.energy.IEnergyContainerItem; -import cofh.api.energy.IEnergyStorage; -import cofh.api.energy.ItemEnergyContainer; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; -import de.ellpeck.actuallyadditions.mod.data.PlayerData; -import de.ellpeck.actuallyadditions.mod.util.ItemUtil; -import de.ellpeck.actuallyadditions.mod.util.compat.ItemTeslaWrapper; +import de.ellpeck.actuallyadditions.mod.tile.CustomEnergyStorage; +import de.ellpeck.actuallyadditions.mod.util.compat.TeslaForgeUnitsWrapper; import de.ellpeck.actuallyadditions.mod.util.compat.TeslaUtil; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -29,43 +25,26 @@ import net.minecraft.util.math.MathHelper; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.energy.CapabilityEnergy; +import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.text.NumberFormat; import java.util.List; -public abstract class ItemEnergy extends ItemEnergyContainer{ +public abstract class ItemEnergy extends ItemBase{ - private final String name; + private final int maxPower; + private final int transfer; public ItemEnergy(int maxPower, int transfer, String name){ - super(maxPower, transfer); + super(name); + this.maxPower = maxPower; + this.transfer = transfer; + this.setHasSubtypes(true); this.setMaxStackSize(1); - this.name = name; - - this.register(); - } - - private void register(){ - ItemUtil.registerItem(this, this.getBaseName(), this.shouldAddCreative()); - - this.registerRendering(); - } - - protected String getBaseName(){ - return this.name; - } - - public boolean shouldAddCreative(){ - return true; - } - - protected void registerRendering(){ - ActuallyAdditions.proxy.addRenderRegister(new ItemStack(this), this.getRegistryName(), "inventory"); } @Override @@ -75,8 +54,13 @@ public abstract class ItemEnergy extends ItemEnergyContainer{ @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool){ - NumberFormat format = NumberFormat.getInstance(); - list.add(format.format(this.getEnergyStored(stack))+"/"+format.format(this.getMaxEnergyStored(stack))+" Crystal Flux"); + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage != null){ + NumberFormat format = NumberFormat.getInstance(); + list.add(format.format(storage.getEnergyStored())+"/"+format.format(storage.getMaxEnergyStored())+" Crystal Flux"); + } + } } @Override @@ -89,8 +73,13 @@ public abstract class ItemEnergy extends ItemEnergyContainer{ @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tabs, NonNullList list){ ItemStack stackFull = new ItemStack(this); - this.setEnergy(stackFull, this.getMaxEnergyStored(stackFull)); - list.add(stackFull); + if(stackFull.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stackFull.getCapability(CapabilityEnergy.ENERGY, null); + if(storage != null){ + this.setEnergy(stackFull, storage.getMaxEnergyStored()); + list.add(stackFull); + } + } ItemStack stackEmpty = new ItemStack(this); this.setEnergy(stackEmpty, 0); @@ -104,25 +93,97 @@ public abstract class ItemEnergy extends ItemEnergyContainer{ @Override public double getDurabilityForDisplay(ItemStack stack){ - double maxAmount = this.getMaxEnergyStored(stack); - double energyDif = maxAmount-this.getEnergyStored(stack); - return energyDif/maxAmount; + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage != null){ + double maxAmount = storage.getMaxEnergyStored(); + double energyDif = maxAmount-storage.getEnergyStored(); + return energyDif/maxAmount; + } + } + return super.getDurabilityForDisplay(stack); } @Override public int getRGBDurabilityForDisplay(ItemStack stack){ - int currEnergy = this.getEnergyStored(stack); - int maxEnergy = this.getMaxEnergyStored(stack); - return MathHelper.hsvToRGB(Math.max(0.0F, (float)currEnergy/maxEnergy)/3.0F, 1.0F, 1.0F); + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage != null){ + int currEnergy = storage.getEnergyStored(); + int maxEnergy = storage.getMaxEnergyStored(); + return MathHelper.hsvToRGB(Math.max(0.0F, (float)currEnergy/maxEnergy)/3.0F, 1.0F, 1.0F); + } + } + return super.getRGBDurabilityForDisplay(stack); } public void setEnergy(ItemStack stack, int energy){ - NBTTagCompound compound = stack.getTagCompound(); - if(compound == null){ - compound = new NBTTagCompound(); + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage instanceof CustomEnergyStorage){ + ((CustomEnergyStorage)storage).setEnergyStored(energy); + } } - compound.setInteger("Energy", energy); - stack.setTagCompound(compound); + } + + public int receiveEnergyInternal(ItemStack stack, int maxReceive, boolean simulate){ + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage instanceof CustomEnergyStorage){ + ((CustomEnergyStorage)storage).receiveEnergyInternal(maxReceive, simulate); + } + } + return 0; + } + + public int extractEnergyInternal(ItemStack stack, int maxExtract, boolean simulate){ + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage instanceof CustomEnergyStorage){ + ((CustomEnergyStorage)storage).extractEnergyInternal(maxExtract, simulate); + } + } + return 0; + } + + public int receiveEnergy(ItemStack stack, int maxReceive, boolean simulate){ + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage != null){ + return storage.receiveEnergy(maxReceive, simulate); + } + } + return 0; + } + + public int extractEnergy(ItemStack stack, int maxExtract, boolean simulate){ + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage != null){ + return storage.extractEnergy(maxExtract, simulate); + } + } + return 0; + } + + public int getEnergyStored(ItemStack stack){ + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage != null){ + return storage.getEnergyStored(); + } + } + return 0; + } + + public int getMaxEnergyStored(ItemStack stack){ + if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ + IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); + if(storage != null){ + return storage.getMaxEnergyStored(); + } + } + return 0; } @Override @@ -130,57 +191,30 @@ public abstract class ItemEnergy extends ItemEnergyContainer{ return new EnergyCapabilityProvider(stack, this); } - public int extractEnergyInternal(ItemStack stack, int maxExtract, boolean simulate){ - int before = this.maxExtract; - this.setMaxExtract(Integer.MAX_VALUE); - - int toReturn = this.extractEnergy(stack, maxExtract, simulate); - - this.setMaxExtract(before); - return toReturn; - } - - public int receiveEnergyInternal(ItemStack stack, int maxReceive, boolean simulate){ - int before = this.maxReceive; - this.setMaxReceive(Integer.MAX_VALUE); - - int toReturn = this.receiveEnergy(stack, maxReceive, simulate); - - this.setMaxReceive(before); - return toReturn; - } - private static class EnergyCapabilityProvider implements ICapabilityProvider{ - private final Object forgeUnitsWrapper; + private final CustomEnergyStorage storage; private Object teslaWrapper; - private final IEnergyContainerItem item; - private final ItemStack stack; - - public EnergyCapabilityProvider(final ItemStack stack, final IEnergyContainerItem item){ - this.stack = stack; - this.item = item; - - this.forgeUnitsWrapper = new IEnergyStorage(){ - @Override - public int receiveEnergy(int maxReceive, boolean simulate){ - return item.receiveEnergy(stack, maxReceive, simulate); - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate){ - return item.extractEnergy(stack, maxExtract, simulate); - } - + public EnergyCapabilityProvider(final ItemStack stack, ItemEnergy item){ + this.storage = new CustomEnergyStorage(item.maxPower, item.transfer, item.transfer){ @Override public int getEnergyStored(){ - return item.getEnergyStored(stack); + if(stack.hasTagCompound()){ + return stack.getTagCompound().getInteger("Energy"); + } + else{ + return 0; + } } @Override - public int getMaxEnergyStored(){ - return item.getMaxEnergyStored(stack); + public void setEnergyStored(int energy){ + if(!stack.hasTagCompound()){ + stack.setTagCompound(new NBTTagCompound()); + } + + stack.getTagCompound().setInteger("Energy", energy); } }; } @@ -194,12 +228,12 @@ public abstract class ItemEnergy extends ItemEnergyContainer{ @Override public T getCapability(Capability capability, EnumFacing facing){ if(capability == CapabilityEnergy.ENERGY){ - return (T)this.forgeUnitsWrapper; + return (T)this.storage; } else if(ActuallyAdditions.teslaLoaded){ if(capability == TeslaUtil.teslaConsumer || capability == TeslaUtil.teslaProducer || capability == TeslaUtil.teslaHolder){ if(this.teslaWrapper == null){ - this.teslaWrapper = new ItemTeslaWrapper(this.stack, this.item); + this.teslaWrapper = new TeslaForgeUnitsWrapper(this.storage); } return (T)this.teslaWrapper; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/CustomEnergyStorage.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/CustomEnergyStorage.java index 9a5bce385..686a9668f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/CustomEnergyStorage.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/CustomEnergyStorage.java @@ -15,14 +15,6 @@ import net.minecraftforge.energy.EnergyStorage; public class CustomEnergyStorage extends EnergyStorage{ - public CustomEnergyStorage(int capacity){ - super(capacity); - } - - public CustomEnergyStorage(int capacity, int maxTransfer){ - super(capacity, maxTransfer); - } - public CustomEnergyStorage(int capacity, int maxReceive, int maxExtract){ super(capacity, maxReceive, maxExtract); } @@ -47,12 +39,41 @@ public class CustomEnergyStorage extends EnergyStorage{ return toReturn; } + @Override + public int receiveEnergy(int maxReceive, boolean simulate){ + if(!this.canReceive()){ + return 0; + } + int energy = this.getEnergyStored(); + + int energyReceived = Math.min(this.capacity-energy, Math.min(this.maxReceive, maxReceive)); + if(!simulate){ + this.setEnergyStored(energy+energyReceived); + } + + return energyReceived; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate){ + if(!this.canExtract()){ + return 0; + } + int energy = this.getEnergyStored(); + + int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); + if(!simulate){ + this.setEnergyStored(energy-energyExtracted); + } + return energyExtracted; + } + public void readFromNBT(NBTTagCompound compound){ - this.energy = compound.getInteger("Energy"); + this.setEnergyStored(compound.getInteger("Energy")); } public void writeToNBT(NBTTagCompound compound){ - compound.setInteger("Energy", this.energy); + compound.setInteger("Energy", this.getEnergyStored()); } public void setEnergyStored(int energy){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/ICustomEnergyReceiver.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/ICustomEnergyReceiver.java deleted file mode 100644 index cd583f99f..000000000 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/ICustomEnergyReceiver.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * This file ("ICustomEnergyReceiver.java") is part of the Actually Additions mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://ellpeck.de/actaddlicense - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015-2016 Ellpeck - */ - -package de.ellpeck.actuallyadditions.mod.tile; - -import cofh.api.energy.IEnergyReceiver; - -public interface ICustomEnergyReceiver extends IEnergyReceiver{ - -} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/IEnergyDisplay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/IEnergyDisplay.java index 4b676c32d..3d0db4112 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/IEnergyDisplay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/IEnergyDisplay.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/ISharingEnergyProvider.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/ISharingEnergyProvider.java index aea366297..9ddb568e6 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/ISharingEnergyProvider.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/ISharingEnergyProvider.java @@ -10,10 +10,9 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.IEnergyProvider; import net.minecraft.util.EnumFacing; -public interface ISharingEnergyProvider extends IEnergyProvider{ +public interface ISharingEnergyProvider{ int getEnergyToSplitShare(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java index 824f07992..6b407de15 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor; import de.ellpeck.actuallyadditions.api.lens.ILensItem; @@ -28,10 +27,10 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.energy.IEnergyStorage; -public class TileEntityAtomicReconstructor extends TileEntityInventoryBase implements ICustomEnergyReceiver, IEnergyDisplay, IAtomicReconstructor{ +public class TileEntityAtomicReconstructor extends TileEntityInventoryBase implements IEnergyDisplay, IAtomicReconstructor{ public static final int ENERGY_USE = 1000; - public final CustomEnergyStorage storage = new CustomEnergyStorage(300000, 5000); + public final CustomEnergyStorage storage = new CustomEnergyStorage(300000, 5000, 0); public int counter; private int currentTime; private int oldEnergy; @@ -162,26 +161,6 @@ public class TileEntityAtomicReconstructor extends TileEntityInventoryBase imple this.sendUpdate(); } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public boolean canInsertItem(int slot, ItemStack stack, EnumFacing side){ return this.isItemValidForSlot(slot, stack); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBase.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBase.java index 137f5047a..c31cf0f8b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBase.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBase.java @@ -17,6 +17,7 @@ import de.ellpeck.actuallyadditions.mod.network.PacketServerToClient; import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; +import de.ellpeck.actuallyadditions.mod.util.compat.TeslaForgeUnitsWrapper; import de.ellpeck.actuallyadditions.mod.util.compat.TeslaUtil; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; @@ -29,7 +30,6 @@ import net.minecraft.util.ITickable; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentString; -import net.minecraft.util.text.TextComponentTranslation; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.energy.CapabilityEnergy; @@ -49,6 +49,8 @@ public abstract class TileEntityBase extends TileEntity implements ITickable{ protected TileEntity[] tilesAround = new TileEntity[6]; protected boolean hasSavedDataOnChangeOrWorldStart; + private Object teslaWrapper; + public TileEntityBase(String name){ this.name = name; } @@ -329,9 +331,11 @@ public abstract class TileEntityBase extends TileEntity implements ITickable{ } } else if(ActuallyAdditions.teslaLoaded){ - T cap = TeslaUtil.wrapTeslaToRF(this, capability, facing); - if(cap != null){ - return cap; + if(capability == TeslaUtil.teslaConsumer || capability == TeslaUtil.teslaProducer || capability == TeslaUtil.teslaHolder){ + if(this.teslaWrapper == null){ + this.teslaWrapper = new TeslaForgeUnitsWrapper(this.getEnergyStorage(facing)); + } + return (T)this.teslaWrapper; } } return super.getCapability(capability, facing); @@ -353,15 +357,6 @@ public abstract class TileEntityBase extends TileEntity implements ITickable{ } - @Override - public void invalidate(){ - super.invalidate(); - - if(ActuallyAdditions.teslaLoaded){ - TeslaUtil.removeTile(this); - } - } - public enum NBTType{ SAVE_TILE, SYNC, diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBioReactor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBioReactor.java index d1a7f5aa9..cf6fb8325 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBioReactor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBioReactor.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import net.minecraft.block.Block; import net.minecraft.block.IGrowable; @@ -28,7 +27,7 @@ import java.util.List; public class TileEntityBioReactor extends TileEntityInventoryBase implements ISharingEnergyProvider{ - public final CustomEnergyStorage storage = new CustomEnergyStorage(200000, 800); + public final CustomEnergyStorage storage = new CustomEnergyStorage(200000, 0, 800); public int burnTime; public int maxBurnTime; @@ -143,26 +142,6 @@ public class TileEntityBioReactor extends TileEntityInventoryBase implements ISh return isValidItem(stack); } - @Override - public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate){ - return this.storage.extractEnergy(maxExtract, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public int getEnergyToSplitShare(){ return this.storage.getEnergyStored(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java index 42a74ecda..33af98b10 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCanolaPress.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.fluids.InitFluids; import de.ellpeck.actuallyadditions.mod.items.InitItems; import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems; @@ -26,12 +25,12 @@ import net.minecraftforge.fluids.capability.IFluidTankProperties; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class TileEntityCanolaPress extends TileEntityInventoryBase implements ICustomEnergyReceiver, ISharingFluidHandler{ +public class TileEntityCanolaPress extends TileEntityInventoryBase implements ISharingFluidHandler{ public static final int PRODUCE = 80; public static final int ENERGY_USE = 35; private static final int TIME = 30; - public final CustomEnergyStorage storage = new CustomEnergyStorage(40000, 100); + public final CustomEnergyStorage storage = new CustomEnergyStorage(40000, 100, 0); public final FluidTank tank = new FluidTank(2*Util.BUCKET){ @Override public boolean canFill(){ @@ -131,26 +130,6 @@ public class TileEntityCanolaPress extends TileEntityInventoryBase implements IC return false; } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public FluidTank getFluidHandler(EnumFacing facing){ return facing != EnumFacing.UP ? this.tank : null; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoalGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoalGenerator.java index 34dbccec4..c226c36f2 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoalGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoalGenerator.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -23,7 +22,7 @@ import net.minecraftforge.fml.relauncher.SideOnly; public class TileEntityCoalGenerator extends TileEntityInventoryBase implements ISharingEnergyProvider{ public static final int PRODUCE = 30; - public final CustomEnergyStorage storage = new CustomEnergyStorage(60000, 80); + public final CustomEnergyStorage storage = new CustomEnergyStorage(60000, 0, 80); public int maxBurnTime; public int currentBurnTime; private int lastEnergy; @@ -110,26 +109,6 @@ public class TileEntityCoalGenerator extends TileEntityInventoryBase implements return TileEntityFurnace.getItemBurnTime(this.slots.get(0)) <= 0; } - @Override - public int extractEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.extractEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public int getEnergyToSplitShare(){ return this.storage.getEnergyStored(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java index 4cb2cffc7..90ec66b15 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.api.recipe.CoffeeIngredient; import de.ellpeck.actuallyadditions.mod.items.InitItems; import de.ellpeck.actuallyadditions.mod.items.ItemCoffee; @@ -31,7 +30,7 @@ import net.minecraftforge.fluids.capability.IFluidTankProperties; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements IButtonReactor, ICustomEnergyReceiver, ISharingFluidHandler{ +public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements IButtonReactor, ISharingFluidHandler{ public static final int SLOT_COFFEE_BEANS = 0; public static final int SLOT_INPUT = 1; @@ -41,7 +40,7 @@ public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements public static final int WATER_USE = 500; public static final int COFFEE_CACHE_MAX_AMOUNT = 300; private static final int TIME_USED = 500; - public final CustomEnergyStorage storage = new CustomEnergyStorage(300000, 250); + public final CustomEnergyStorage storage = new CustomEnergyStorage(300000, 250, 0); public final FluidTank tank = new FluidTank(4*Util.BUCKET){ @Override public boolean canDrain(){ @@ -193,26 +192,6 @@ public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements } } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public FluidTank getFluidHandler(EnumFacing facing){ return facing != EnumFacing.DOWN ? this.tank : null; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDirectionalBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDirectionalBreaker.java index 6aadbf3ca..157a7ff76 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDirectionalBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDirectionalBreaker.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; @@ -25,11 +24,11 @@ import net.minecraftforge.fml.relauncher.SideOnly; import java.util.List; -public class TileEntityDirectionalBreaker extends TileEntityInventoryBase implements ICustomEnergyReceiver{ +public class TileEntityDirectionalBreaker extends TileEntityInventoryBase{ public static final int RANGE = 8; public static final int ENERGY_USE = 5; - public final CustomEnergyStorage storage = new CustomEnergyStorage(10000, 20); + public final CustomEnergyStorage storage = new CustomEnergyStorage(10000, 20, 0); private int lastEnergy; private int currentTime; @@ -123,27 +122,6 @@ public class TileEntityDirectionalBreaker extends TileEntityInventoryBase implem return true; } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - - @Override public boolean isRedstoneToggle(){ return true; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDisplayStand.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDisplayStand.java index 51d1b97e1..f0c045ee0 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDisplayStand.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDisplayStand.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.api.misc.IDisplayStandItem; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import net.minecraft.block.Block; @@ -21,9 +20,9 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraftforge.energy.IEnergyStorage; -public class TileEntityDisplayStand extends TileEntityInventoryBase implements IEnergyDisplay, ICustomEnergyReceiver{ +public class TileEntityDisplayStand extends TileEntityInventoryBase implements IEnergyDisplay{ - public final CustomEnergyStorage storage = new CustomEnergyStorage(80000, 1000); + public final CustomEnergyStorage storage = new CustomEnergyStorage(80000, 1000, 0); private int oldEnergy; public TileEntityDisplayStand(){ @@ -114,26 +113,6 @@ public class TileEntityDisplayStand extends TileEntityInventoryBase implements I return false; } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return from != EnumFacing.UP ? this.storage.receiveEnergy(maxReceive, simulate) : 0; - } - - @Override - public int getEnergyStored(EnumFacing from){ - return from != EnumFacing.UP ? this.storage.getEnergyStored() : 0; - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return from != EnumFacing.UP ? this.storage.getMaxEnergyStored() : 0; - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return from != EnumFacing.UP; - } - @Override public int getInventoryStackLimit(){ return 1; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnergizer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnergizer.java index 3fefdffa9..b6eb5f589 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnergizer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnergizer.java @@ -10,8 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; -import cofh.api.energy.IEnergyContainerItem; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import de.ellpeck.actuallyadditions.mod.util.compat.TeslaUtil; @@ -25,9 +23,9 @@ import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class TileEntityEnergizer extends TileEntityInventoryBase implements ICustomEnergyReceiver{ +public class TileEntityEnergizer extends TileEntityInventoryBase{ - public final CustomEnergyStorage storage = new CustomEnergyStorage(50000, 1000); + public final CustomEnergyStorage storage = new CustomEnergyStorage(50000, 1000, 0); private int lastEnergy; public TileEntityEnergizer(){ @@ -55,12 +53,7 @@ public class TileEntityEnergizer extends TileEntityInventoryBase implements ICus int received = 0; boolean canTakeUp = false; - if(this.slots.get(0).getItem() instanceof IEnergyContainerItem){ - IEnergyContainerItem item = (IEnergyContainerItem)this.slots.get(0).getItem(); - received = (item.receiveEnergy(this.slots.get(0), this.storage.getEnergyStored(), false)); - canTakeUp = item.getEnergyStored(this.slots.get(0)) >= item.getMaxEnergyStored(this.slots.get(0)); - } - else if(this.slots.get(0).hasCapability(CapabilityEnergy.ENERGY, null)){ + if(this.slots.get(0).hasCapability(CapabilityEnergy.ENERGY, null)){ IEnergyStorage cap = this.slots.get(0).getCapability(CapabilityEnergy.ENERGY, null); if(cap != null){ received = cap.receiveEnergy(this.storage.getEnergyStored(), false); @@ -100,7 +93,7 @@ public class TileEntityEnergizer extends TileEntityInventoryBase implements ICus @Override public boolean isItemValidForSlot(int i, ItemStack stack){ - return i == 0 && (stack.getItem() instanceof IEnergyContainerItem || (ActuallyAdditions.teslaLoaded && stack.hasCapability(TeslaUtil.teslaConsumer, null)) || stack.hasCapability(CapabilityEnergy.ENERGY, null)); + return i == 0 && ((ActuallyAdditions.teslaLoaded && stack.hasCapability(TeslaUtil.teslaConsumer, null)) || stack.hasCapability(CapabilityEnergy.ENERGY, null)); } @Override @@ -118,26 +111,6 @@ public class TileEntityEnergizer extends TileEntityInventoryBase implements ICus return this.storage.getEnergyStored()*i/this.storage.getMaxEnergyStored(); } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public IEnergyStorage getEnergyStorage(EnumFacing facing){ return this.storage; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnervator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnervator.java index 03ba55180..2fec331b2 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnervator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityEnervator.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.IEnergyContainerItem; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import de.ellpeck.actuallyadditions.mod.util.compat.TeslaUtil; @@ -26,7 +25,7 @@ import net.minecraftforge.fml.relauncher.SideOnly; public class TileEntityEnervator extends TileEntityInventoryBase implements ISharingEnergyProvider{ - public final CustomEnergyStorage storage = new CustomEnergyStorage(50000, 1000); + public final CustomEnergyStorage storage = new CustomEnergyStorage(50000, 0, 1000); private int lastEnergy; public TileEntityEnervator(){ @@ -55,12 +54,7 @@ public class TileEntityEnervator extends TileEntityInventoryBase implements ISha boolean canTakeUp = false; int maxExtract = this.storage.getMaxEnergyStored()-this.storage.getEnergyStored(); - if(this.slots.get(0).getItem() instanceof IEnergyContainerItem){ - IEnergyContainerItem item = (IEnergyContainerItem)this.slots.get(0).getItem(); - extracted = item.extractEnergy(this.slots.get(0), maxExtract, false); - canTakeUp = item.getEnergyStored(this.slots.get(0)) <= 0; - } - else if(this.slots.get(0).hasCapability(CapabilityEnergy.ENERGY, null)){ + if(this.slots.get(0).hasCapability(CapabilityEnergy.ENERGY, null)){ IEnergyStorage cap = this.slots.get(0).getCapability(CapabilityEnergy.ENERGY, null); if(cap != null){ extracted = cap.extractEnergy(maxExtract, false); @@ -100,27 +94,7 @@ public class TileEntityEnervator extends TileEntityInventoryBase implements ISha @Override public boolean isItemValidForSlot(int i, ItemStack stack){ - return i == 0 && (stack.getItem() instanceof IEnergyContainerItem || (ActuallyAdditions.teslaLoaded && stack.hasCapability(TeslaUtil.teslaProducer, null)) || stack.hasCapability(CapabilityEnergy.ENERGY, null)); - } - - @Override - public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate){ - return this.storage.extractEnergy(maxExtract, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; + return i == 0 && ((ActuallyAdditions.teslaLoaded && stack.hasCapability(TeslaUtil.teslaProducer, null)) || stack.hasCapability(CapabilityEnergy.ENERGY, null)); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFarmer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFarmer.java index c38a39578..da703ccf4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFarmer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFarmer.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; @@ -33,10 +32,10 @@ import net.minecraftforge.energy.IEnergyStorage; import java.util.ArrayList; import java.util.List; -public class TileEntityFarmer extends TileEntityInventoryBase implements ICustomEnergyReceiver{ +public class TileEntityFarmer extends TileEntityInventoryBase{ public static final int USE_PER_OPERATION = 1500; - public final CustomEnergyStorage storage = new CustomEnergyStorage(100000, 1000); + public final CustomEnergyStorage storage = new CustomEnergyStorage(100000, 1000, 0); private int waitTime; private int checkX; @@ -217,26 +216,6 @@ public class TileEntityFarmer extends TileEntityInventoryBase implements ICustom return slot >= 6; } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public IEnergyStorage getEnergyStorage(EnumFacing facing){ return this.storage; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java index 0534a9b8f..b09a3ec93 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import net.minecraft.entity.item.EntityFireworkRocket; import net.minecraft.init.Items; import net.minecraft.item.ItemDye; @@ -22,10 +21,10 @@ import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; import net.minecraftforge.energy.IEnergyStorage; -public class TileEntityFireworkBox extends TileEntityBase implements ICustomEnergyReceiver, IEnergyDisplay{ +public class TileEntityFireworkBox extends TileEntityBase implements IEnergyDisplay{ public static final int USE_PER_SHOT = 300; - public final CustomEnergyStorage storage = new CustomEnergyStorage(20000, 200); + public final CustomEnergyStorage storage = new CustomEnergyStorage(20000, 200, 0); private int timeUntilNextFirework; private int oldEnergy; @@ -132,26 +131,6 @@ public class TileEntityFireworkBox extends TileEntityBase implements ICustomEner } } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public boolean isRedstoneToggle(){ return true; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceDouble.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceDouble.java index a5ed72fee..d080e9fea 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceDouble.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceDouble.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor; import de.ellpeck.actuallyadditions.mod.util.ItemUtil; import de.ellpeck.actuallyadditions.mod.util.StackUtil; @@ -26,7 +25,7 @@ import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class TileEntityFurnaceDouble extends TileEntityInventoryBase implements ICustomEnergyReceiver, IButtonReactor{ +public class TileEntityFurnaceDouble extends TileEntityInventoryBase implements IButtonReactor{ public static final int SLOT_INPUT_1 = 0; public static final int SLOT_OUTPUT_1 = 1; @@ -34,7 +33,7 @@ public class TileEntityFurnaceDouble extends TileEntityInventoryBase implements public static final int SLOT_OUTPUT_2 = 3; public static final int ENERGY_USE = 25; private static final int SMELT_TIME = 80; - public final CustomEnergyStorage storage = new CustomEnergyStorage(30000, 80); + public final CustomEnergyStorage storage = new CustomEnergyStorage(30000, 80, 0); public int firstSmeltTime; public int secondSmeltTime; public boolean isAutoSplit; @@ -199,26 +198,6 @@ public class TileEntityFurnaceDouble extends TileEntityInventoryBase implements return slot == SLOT_OUTPUT_1 || slot == SLOT_OUTPUT_2; } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public void onButtonPressed(int buttonID, EntityPlayer player){ if(buttonID == 0){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java index 2960d9951..ba7bcaab1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import net.minecraft.block.state.IBlockState; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; @@ -20,33 +19,13 @@ import net.minecraftforge.energy.IEnergyStorage; public class TileEntityFurnaceSolar extends TileEntityBase implements ISharingEnergyProvider, IEnergyDisplay{ public static final int PRODUCE = 8; - public final CustomEnergyStorage storage = new CustomEnergyStorage(30000, 100); + public final CustomEnergyStorage storage = new CustomEnergyStorage(30000, 0, 100); private int oldEnergy; public TileEntityFurnaceSolar(){ super("solarPanel"); } - @Override - public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate){ - return this.storage.extractEnergy(maxExtract, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return from != EnumFacing.UP; - } - @Override public void writeSyncableNBT(NBTTagCompound compound, NBTType type){ super.writeSyncableNBT(compound, type); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGrinder.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGrinder.java index e47b6fdbd..ba7a6c287 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGrinder.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityGrinder.java @@ -11,7 +11,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.misc.SoundHandler; import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor; import de.ellpeck.actuallyadditions.mod.recipe.CrusherRecipeRegistry; @@ -28,7 +27,7 @@ import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class TileEntityGrinder extends TileEntityInventoryBase implements ICustomEnergyReceiver, IButtonReactor{ +public class TileEntityGrinder extends TileEntityInventoryBase implements IButtonReactor{ public static final int SLOT_INPUT_1 = 0; public static final int SLOT_OUTPUT_1_1 = 1; @@ -37,7 +36,7 @@ public class TileEntityGrinder extends TileEntityInventoryBase implements ICusto public static final int SLOT_OUTPUT_2_1 = 4; public static final int SLOT_OUTPUT_2_2 = 5; public static final int ENERGY_USE = 40; - public final CustomEnergyStorage storage = new CustomEnergyStorage(60000, 100); + public final CustomEnergyStorage storage = new CustomEnergyStorage(60000, 100, 0); public int firstCrushTime; public int secondCrushTime; public boolean isDouble; @@ -56,26 +55,6 @@ public class TileEntityGrinder extends TileEntityInventoryBase implements ICusto this.isDouble = false; } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public void writeSyncableNBT(NBTTagCompound compound, NBTType type){ if(type != NBTType.SAVE_BLOCK){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java index c4d09a656..a0a196f54 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -26,7 +25,7 @@ public class TileEntityHeatCollector extends TileEntityBase implements ISharingE public static final int ENERGY_PRODUCE = 40; public static final int BLOCKS_NEEDED = 4; - public final CustomEnergyStorage storage = new CustomEnergyStorage(30000, 80); + public final CustomEnergyStorage storage = new CustomEnergyStorage(30000, 0, 80); private int oldEnergy; public TileEntityHeatCollector(){ @@ -77,26 +76,6 @@ public class TileEntityHeatCollector extends TileEntityBase implements ISharingE } } - @Override - public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate){ - return this.storage.extractEnergy(maxExtract, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return from == EnumFacing.UP; - } - @Override public CustomEnergyStorage getEnergyStorage(){ return this.storage; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityItemRepairer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityItemRepairer.java index 3e4020651..948edfd19 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityItemRepairer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityItemRepairer.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.config.values.ConfigStringListValues; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import net.minecraft.item.Item; @@ -21,12 +20,12 @@ import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class TileEntityItemRepairer extends TileEntityInventoryBase implements ICustomEnergyReceiver{ +public class TileEntityItemRepairer extends TileEntityInventoryBase{ public static final int SLOT_INPUT = 0; public static final int SLOT_OUTPUT = 1; public static final int ENERGY_USE = 2500; - public final CustomEnergyStorage storage = new CustomEnergyStorage(300000, 6000); + public final CustomEnergyStorage storage = new CustomEnergyStorage(300000, 6000, 0); public int nextRepairTick; private int lastEnergy; @@ -142,26 +141,6 @@ public class TileEntityItemRepairer extends TileEntityInventoryBase implements I return slot == SLOT_OUTPUT; } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public IEnergyStorage getEnergyStorage(EnumFacing facing){ return this.storage; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java index cd375aa02..6ff8fc587 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayEnergy.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.IEnergyReceiver; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; import de.ellpeck.actuallyadditions.api.laser.IConnectionPair; import de.ellpeck.actuallyadditions.api.laser.LaserType; @@ -25,41 +24,63 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay implements ICustomEnergyReceiver{ +public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay{ public static final int CAP = 1000; public final ConcurrentHashMap receiversAround = new ConcurrentHashMap(); + private final IEnergyStorage[] energyStorages = new IEnergyStorage[6]; + public TileEntityLaserRelayEnergy(String name){ super(name, LaserType.ENERGY); + + for(int i = 0; i < this.energyStorages.length; i++){ + final EnumFacing facing = EnumFacing.values()[i]; + this.energyStorages[i] = new IEnergyStorage(){ + + @Override + public int receiveEnergy(int amount, boolean simulate){ + return TileEntityLaserRelayEnergy.this.transmitEnergy(facing, amount, simulate); + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate){ + return 0; + } + + @Override + public int getEnergyStored(){ + return 0; + } + + @Override + public int getMaxEnergyStored(){ + return TileEntityLaserRelayEnergy.this.getEnergyCap(); + } + + @Override + public boolean canExtract(){ + return false; + } + + @Override + public boolean canReceive(){ + return true; + } + }; + } } public TileEntityLaserRelayEnergy(){ this("laserRelay"); } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.transmitEnergy(from, maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return 0; - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.getEnergyCap(); - } - private int transmitEnergy(EnumFacing from, int maxTransmit, boolean simulate){ int transmitted = 0; if(maxTransmit > 0){ @@ -72,8 +93,8 @@ public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay implements } @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; + public IEnergyStorage getEnergyStorage(EnumFacing facing){ + return this.energyStorages[facing == null ? 0 : facing.ordinal()]; } @Override @@ -91,7 +112,7 @@ public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay implements BlockPos pos = this.getPos().offset(side); TileEntity tile = this.worldObj.getTileEntity(pos); if(tile != null && !(tile instanceof TileEntityLaserRelay)){ - if(tile instanceof IEnergyReceiver || (ActuallyAdditions.teslaLoaded && tile.hasCapability(TeslaUtil.teslaConsumer, side.getOpposite())) || tile.hasCapability(CapabilityEnergy.ENERGY, side.getOpposite())){ + if((ActuallyAdditions.teslaLoaded && tile.hasCapability(TeslaUtil.teslaConsumer, side.getOpposite())) || tile.hasCapability(CapabilityEnergy.ENERGY, side.getOpposite())){ this.receiversAround.put(side, tile); TileEntity oldTile = old.get(side); @@ -152,22 +173,7 @@ public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay implements if(!alreadyChecked.contains(tile.getPos())){ alreadyChecked.add(tile.getPos()); if(theRelay != this || side != from){ - if(tile instanceof IEnergyReceiver){ - IEnergyReceiver iReceiver = (IEnergyReceiver)tile; - if(iReceiver.canConnectEnergy(opp)){ - int theoreticalReceived = iReceiver.receiveEnergy(opp, Math.min(amountPer, lowestCap), true); - if(theoreticalReceived > 0){ - int deduct = this.calcDeduction(theoreticalReceived, highestLoss); - if(deduct >= theoreticalReceived){ //Happens with small numbers - deduct = 0; - } - - transmitted += iReceiver.receiveEnergy(opp, theoreticalReceived-deduct, simulate); - transmitted += deduct; - } - } - } - else if(tile.hasCapability(CapabilityEnergy.ENERGY, opp)){ + if(tile.hasCapability(CapabilityEnergy.ENERGY, opp)){ IEnergyStorage cap = tile.getCapability(CapabilityEnergy.ENERGY, opp); if(cap != null){ int theoreticalReceived = cap.receiveEnergy(Math.min(amountPer, lowestCap), true); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayFluids.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayFluids.java index 5ce7703ef..8cf8f8f9f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayFluids.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayFluids.java @@ -53,13 +53,11 @@ public class TileEntityLaserRelayFluids extends TileEntityLaserRelay implements return TileEntityLaserRelayFluids.this.transmitFluid(facing, resource, doFill); } - @Nullable @Override public FluidStack drain(FluidStack resource, boolean doDrain){ return null; } - @Nullable @Override public FluidStack drain(int maxDrain, boolean doDrain){ return null; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java index 24e80ce10..70c8061e1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheMiscBlocks; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; @@ -22,13 +21,13 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraftforge.energy.IEnergyStorage; -public class TileEntityLavaFactoryController extends TileEntityBase implements ICustomEnergyReceiver, IEnergyDisplay{ +public class TileEntityLavaFactoryController extends TileEntityBase implements IEnergyDisplay{ public static final int NOT_MULTI = 0; public static final int HAS_LAVA = 1; public static final int HAS_AIR = 2; public static final int ENERGY_USE = 150000; - public final CustomEnergyStorage storage = new CustomEnergyStorage(300000, 2000); + public final CustomEnergyStorage storage = new CustomEnergyStorage(300000, 2000, 0); private int currentWorkTime; private int oldEnergy; @@ -99,26 +98,6 @@ public class TileEntityLavaFactoryController extends TileEntityBase implements I return NOT_MULTI; } - @Override - public int receiveEnergy(EnumFacing from, int maxExtract, boolean simulate){ - return from != EnumFacing.UP ? this.storage.receiveEnergy(maxExtract, simulate) : 0; - } - - @Override - public int getEnergyStored(EnumFacing from){ - return from != EnumFacing.UP ? this.storage.getEnergyStored() : 0; - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return from != EnumFacing.UP ? this.storage.getMaxEnergyStored() : 0; - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return from != EnumFacing.UP; - } - @Override public CustomEnergyStorage getEnergyStorage(){ return this.storage; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java index 9ca65f59e..4969a9f98 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; @@ -26,7 +25,7 @@ public class TileEntityLeafGenerator extends TileEntityBase implements ISharingE public static final int RANGE = 7; public static final int ENERGY_PRODUCED = 300; - public final CustomEnergyStorage storage = new CustomEnergyStorage(35000, 450); + public final CustomEnergyStorage storage = new CustomEnergyStorage(35000, 0, 450); private int nextUseCounter; private int oldEnergy; @@ -95,26 +94,6 @@ public class TileEntityLeafGenerator extends TileEntityBase implements ISharingE } } - @Override - public int extractEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.extractEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public CustomEnergyStorage getEnergyStorage(){ return this.storage; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java index feb2efc25..2ea9fbea0 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.config.values.ConfigStringListValues; import de.ellpeck.actuallyadditions.mod.items.ItemDrill; import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor; @@ -31,11 +30,11 @@ import net.minecraftforge.oredict.OreDictionary; import java.util.List; -public class TileEntityMiner extends TileEntityInventoryBase implements ICustomEnergyReceiver, IButtonReactor, IEnergyDisplay{ +public class TileEntityMiner extends TileEntityInventoryBase implements IButtonReactor, IEnergyDisplay{ public static final int ENERGY_USE_PER_BLOCK = 650; public static final int DEFAULT_RANGE = 2; - public final CustomEnergyStorage storage = new CustomEnergyStorage(200000, 2000); + public final CustomEnergyStorage storage = new CustomEnergyStorage(200000, 2000, 0); public int layerAt = -1; public boolean onlyMineOres; private int oldLayerAt; @@ -184,26 +183,6 @@ public class TileEntityMiner extends TileEntityInventoryBase implements ICustomE return false; } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public boolean canInsertItem(int slot, ItemStack stack, EnumFacing side){ return this.isItemValidForSlot(slot, stack); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java index c13f8ee39..33e52594d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityOilGenerator.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; import de.ellpeck.actuallyadditions.api.recipe.OilGenRecipe; import de.ellpeck.actuallyadditions.mod.util.Util; @@ -26,7 +25,7 @@ import net.minecraftforge.fml.relauncher.SideOnly; public class TileEntityOilGenerator extends TileEntityBase implements ISharingEnergyProvider, ISharingFluidHandler{ - public final CustomEnergyStorage storage = new CustomEnergyStorage(50000, 150); + public final CustomEnergyStorage storage = new CustomEnergyStorage(50000, 0, 150); public final FluidTank tank = new FluidTank(2*Util.BUCKET){ @Override public boolean canDrain(){ @@ -145,26 +144,6 @@ public class TileEntityOilGenerator extends TileEntityBase implements ISharingEn } } - @Override - public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate){ - return this.storage.extractEnergy(maxExtract, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public IFluidHandler getFluidHandler(EnumFacing facing){ return facing != EnumFacing.DOWN ? this.tank : null; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomEnergyface.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomEnergyface.java index a8432f3a2..e50e53174 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomEnergyface.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomEnergyface.java @@ -10,146 +10,33 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.IEnergyConnection; -import cofh.api.energy.IEnergyHandler; -import cofh.api.energy.IEnergyProvider; -import cofh.api.energy.IEnergyReceiver; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.BlockPhantom; import de.ellpeck.actuallyadditions.mod.util.compat.TeslaUtil; -import net.darkhax.tesla.api.ITeslaConsumer; -import net.darkhax.tesla.api.ITeslaHolder; -import net.darkhax.tesla.api.ITeslaProducer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraftforge.energy.CapabilityEnergy; -import net.minecraftforge.energy.IEnergyStorage; -public class TileEntityPhantomEnergyface extends TileEntityPhantomface implements ICustomEnergyReceiver, ISharingEnergyProvider{ +public class TileEntityPhantomEnergyface extends TileEntityPhantomface implements ISharingEnergyProvider{ public TileEntityPhantomEnergyface(){ super("energyface"); this.type = BlockPhantom.Type.ENERGYFACE; } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - if(this.isBoundThingInRange()){ - TileEntity tile = this.worldObj.getTileEntity(this.boundPosition); - if(tile != null){ - if(tile instanceof IEnergyReceiver){ - return ((IEnergyReceiver)tile).receiveEnergy(from, maxReceive, simulate); - } - else if(tile.hasCapability(CapabilityEnergy.ENERGY, from)){ - IEnergyStorage cap = tile.getCapability(CapabilityEnergy.ENERGY, from); - if(cap != null){ - return cap.receiveEnergy(maxReceive, simulate); - } - } - else if(ActuallyAdditions.teslaLoaded && tile.hasCapability(TeslaUtil.teslaConsumer, from)){ - ITeslaConsumer cap = tile.getCapability(TeslaUtil.teslaConsumer, from); - if(cap != null){ - return (int)cap.givePower(maxReceive, simulate); - } - } - } - } - return 0; - } - - @Override - public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate){ - if(this.isBoundThingInRange()){ - TileEntity tile = this.worldObj.getTileEntity(this.boundPosition); - if(tile != null){ - if(tile instanceof IEnergyProvider){ - return ((IEnergyProvider)tile).extractEnergy(from, maxExtract, simulate); - } - else if(tile.hasCapability(CapabilityEnergy.ENERGY, from)){ - IEnergyStorage cap = tile.getCapability(CapabilityEnergy.ENERGY, from); - if(cap != null){ - return cap.extractEnergy(maxExtract, simulate); - } - } - else if(ActuallyAdditions.teslaLoaded && tile.hasCapability(TeslaUtil.teslaProducer, from)){ - ITeslaProducer cap = tile.getCapability(TeslaUtil.teslaProducer, from); - if(cap != null){ - return (int)cap.takePower(maxExtract, simulate); - } - } - } - } - return 0; - } - - @Override - public int getEnergyStored(EnumFacing from){ - if(this.isBoundThingInRange()){ - TileEntity tile = this.worldObj.getTileEntity(this.boundPosition); - if(tile != null){ - if(tile instanceof IEnergyHandler){ - return ((IEnergyHandler)tile).getEnergyStored(from); - } - else if(tile.hasCapability(CapabilityEnergy.ENERGY, from)){ - IEnergyStorage cap = tile.getCapability(CapabilityEnergy.ENERGY, from); - if(cap != null){ - return cap.getEnergyStored(); - } - } - else if(ActuallyAdditions.teslaLoaded && tile.hasCapability(TeslaUtil.teslaHolder, from)){ - ITeslaHolder cap = tile.getCapability(TeslaUtil.teslaHolder, from); - if(cap != null){ - return (int)cap.getStoredPower(); - } - } - } - } - return 0; - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - if(this.isBoundThingInRange()){ - TileEntity tile = this.worldObj.getTileEntity(this.boundPosition); - if(tile != null){ - if(tile instanceof IEnergyHandler){ - return ((IEnergyHandler)tile).getMaxEnergyStored(from); - } - else if(tile.hasCapability(CapabilityEnergy.ENERGY, from)){ - IEnergyStorage cap = tile.getCapability(CapabilityEnergy.ENERGY, from); - if(cap != null){ - return cap.getMaxEnergyStored(); - } - } - else if(ActuallyAdditions.teslaLoaded && tile.hasCapability(TeslaUtil.teslaHolder, from)){ - ITeslaHolder cap = tile.getCapability(TeslaUtil.teslaHolder, from); - if(cap != null){ - return (int)cap.getCapacity(); - } - } - } - } - return 0; - } - @Override public boolean isBoundThingInRange(){ if(super.isBoundThingInRange()){ TileEntity tile = this.worldObj.getTileEntity(this.boundPosition); if(tile != null){ - if(tile instanceof IEnergyHandler){ - return true; - } - else{ - for(EnumFacing facing : EnumFacing.values()){ - if(tile.hasCapability(CapabilityEnergy.ENERGY, facing)){ + for(EnumFacing facing : EnumFacing.values()){ + if(tile.hasCapability(CapabilityEnergy.ENERGY, facing)){ + return true; + } + else if(ActuallyAdditions.teslaLoaded){ + if(tile.hasCapability(TeslaUtil.teslaHolder, facing)){ return true; } - else if(ActuallyAdditions.teslaLoaded){ - if(tile.hasCapability(TeslaUtil.teslaHolder, facing)){ - return true; - } - } } } } @@ -157,22 +44,6 @@ public class TileEntityPhantomEnergyface extends TileEntityPhantomface implement return false; } - @Override - public boolean canConnectEnergy(EnumFacing from){ - if(this.isBoundThingInRange()){ - TileEntity tile = this.worldObj.getTileEntity(this.boundPosition); - if(tile != null){ - if(tile instanceof IEnergyConnection){ - return ((IEnergyConnection)tile).canConnectEnergy(from); - } - else{ - return tile.hasCapability(CapabilityEnergy.ENERGY, from) || (ActuallyAdditions.teslaLoaded && tile.hasCapability(TeslaUtil.teslaHolder, from)); - } - } - } - return false; - } - @Override public int getEnergyToSplitShare(){ return Integer.MAX_VALUE; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPlayerInterface.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPlayerInterface.java index c17532397..5db8a2350 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPlayerInterface.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPlayerInterface.java @@ -10,14 +10,11 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; -import cofh.api.energy.IEnergyContainerItem; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import de.ellpeck.actuallyadditions.mod.util.compat.TeslaUtil; import net.darkhax.tesla.api.ITeslaConsumer; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; @@ -26,10 +23,10 @@ import net.minecraftforge.energy.IEnergyStorage; import java.util.UUID; -public class TileEntityPlayerInterface extends TileEntityInventoryBase implements ICustomEnergyReceiver, IEnergyDisplay{ +public class TileEntityPlayerInterface extends TileEntityInventoryBase implements IEnergyDisplay{ public static final int DEFAULT_RANGE = 32; - private final CustomEnergyStorage storage = new CustomEnergyStorage(30000, 50); + private final CustomEnergyStorage storage = new CustomEnergyStorage(30000, 50, 0); public UUID connectedPlayer; public String playerName; private int oldEnergy; @@ -65,13 +62,9 @@ public class TileEntityPlayerInterface extends TileEntityInventoryBase implement if(this.storage.getEnergyStored() > 0){ ItemStack slot = player.inventory.getStackInSlot(i); if(StackUtil.isValid(slot)){ - Item item = slot.getItem(); int received = 0; - if(item instanceof IEnergyContainerItem){ - received = ((IEnergyContainerItem)item).receiveEnergy(slot, this.storage.getEnergyStored(), false); - } - else if(slot.hasCapability(CapabilityEnergy.ENERGY, null)){ + if(slot.hasCapability(CapabilityEnergy.ENERGY, null)){ IEnergyStorage cap = slot.getCapability(CapabilityEnergy.ENERGY, null); if(cap != null){ received = cap.receiveEnergy(this.storage.getEnergyStored(), false); @@ -128,26 +121,6 @@ public class TileEntityPlayerInterface extends TileEntityInventoryBase implement } } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public int[] getSlotsForFace(EnumFacing side){ if(this.getPlayer() != null){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityShockSuppressor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityShockSuppressor.java index 92e2e80d9..2b1168ec9 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityShockSuppressor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityShockSuppressor.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.tile; -import cofh.api.energy.EnergyStorage; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraftforge.energy.IEnergyStorage; @@ -18,14 +17,14 @@ import net.minecraftforge.energy.IEnergyStorage; import java.util.ArrayList; import java.util.List; -public class TileEntityShockSuppressor extends TileEntityBase implements ICustomEnergyReceiver, IEnergyDisplay{ +public class TileEntityShockSuppressor extends TileEntityBase implements IEnergyDisplay{ public static final List SUPPRESSORS = new ArrayList(); public static final int USE_PER = 300; public static final int RANGE = 5; - public CustomEnergyStorage storage = new CustomEnergyStorage(300000, 400); + public CustomEnergyStorage storage = new CustomEnergyStorage(300000, 400, 0); private int oldEnergy; public TileEntityShockSuppressor(){ @@ -77,26 +76,6 @@ public class TileEntityShockSuppressor extends TileEntityBase implements ICustom this.storage.readFromNBT(compound); } - @Override - public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(EnumFacing from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(EnumFacing from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(EnumFacing from){ - return true; - } - @Override public CustomEnergyStorage getEnergyStorage(){ return this.storage; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java index e650e778e..9d923fa7b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java @@ -10,11 +10,10 @@ package de.ellpeck.actuallyadditions.mod.util; -import cofh.api.energy.IEnergyProvider; -import cofh.api.energy.IEnergyReceiver; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; -import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy; import de.ellpeck.actuallyadditions.mod.util.compat.TeslaUtil; +import net.darkhax.tesla.api.ITeslaConsumer; +import net.darkhax.tesla.api.ITeslaProducer; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -77,20 +76,6 @@ public final class WorldUtil{ public static void doEnergyInteraction(TileEntity tileFrom, TileEntity tileTo, EnumFacing sideTo, int maxTransfer){ if(maxTransfer > 0){ - if(tileFrom instanceof IEnergyProvider && tileTo instanceof IEnergyReceiver){ - IEnergyReceiver handlerTo = (IEnergyReceiver)tileTo; - IEnergyProvider handlerFrom = (IEnergyProvider)tileFrom; - - int drain = handlerFrom.extractEnergy(sideTo, maxTransfer, true); - if(drain > 0){ - if(handlerTo.canConnectEnergy(sideTo.getOpposite())){ - int filled = handlerTo.receiveEnergy(sideTo.getOpposite(), drain, false); - handlerFrom.extractEnergy(sideTo, filled, false); - return; - } - } - } - if(tileFrom.hasCapability(CapabilityEnergy.ENERGY, sideTo) && tileTo.hasCapability(CapabilityEnergy.ENERGY, sideTo.getOpposite())){ IEnergyStorage handlerFrom = tileFrom.getCapability(CapabilityEnergy.ENERGY, sideTo); IEnergyStorage handlerTo = tileTo.getCapability(CapabilityEnergy.ENERGY, sideTo.getOpposite()); @@ -106,7 +91,18 @@ public final class WorldUtil{ } if(ActuallyAdditions.teslaLoaded){ - TeslaUtil.doWrappedTeslaRFInteraction(tileFrom, tileTo, sideTo, maxTransfer); + if(tileTo.hasCapability(TeslaUtil.teslaConsumer, sideTo.getOpposite()) && tileFrom.hasCapability(TeslaUtil.teslaProducer, sideTo)){ + ITeslaConsumer handlerTo = tileTo.getCapability(TeslaUtil.teslaConsumer, sideTo.getOpposite()); + ITeslaProducer handlerFrom = tileFrom.getCapability(TeslaUtil.teslaProducer, sideTo); + + if(handlerTo != null && handlerFrom != null){ + long drain = handlerFrom.takePower(maxTransfer, true); + if(drain > 0){ + long filled = handlerTo.givePower(drain, false); + handlerFrom.takePower(filled, false); + } + } + } } } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/ItemTeslaWrapper.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TeslaForgeUnitsWrapper.java similarity index 58% rename from src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/ItemTeslaWrapper.java rename to src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TeslaForgeUnitsWrapper.java index 971595c85..f229d4e10 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/ItemTeslaWrapper.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TeslaForgeUnitsWrapper.java @@ -10,39 +10,38 @@ package de.ellpeck.actuallyadditions.mod.util.compat; -import cofh.api.energy.IEnergyContainerItem; +import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy; import net.darkhax.tesla.api.ITeslaConsumer; import net.darkhax.tesla.api.ITeslaHolder; import net.darkhax.tesla.api.ITeslaProducer; import net.minecraft.item.ItemStack; +import net.minecraftforge.energy.IEnergyStorage; -public class ItemTeslaWrapper implements ITeslaProducer, ITeslaHolder, ITeslaConsumer{ +public class TeslaForgeUnitsWrapper implements ITeslaProducer, ITeslaHolder, ITeslaConsumer{ - private final ItemStack stack; - private final IEnergyContainerItem item; + private final IEnergyStorage storage; - public ItemTeslaWrapper(ItemStack stack, IEnergyContainerItem item){ - this.stack = stack; - this.item = item; + public TeslaForgeUnitsWrapper(IEnergyStorage storage){ + this.storage = storage; } @Override public long givePower(long power, boolean simulated){ - return this.item.receiveEnergy(this.stack, (int)power, simulated); + return this.storage.receiveEnergy((int)power, simulated); } @Override public long getStoredPower(){ - return this.item.getEnergyStored(this.stack); + return this.storage.getEnergyStored(); } @Override public long getCapacity(){ - return this.item.getMaxEnergyStored(this.stack); + return this.storage.getMaxEnergyStored(); } @Override public long takePower(long power, boolean simulated){ - return this.item.extractEnergy(this.stack, (int)power, simulated); + return this.storage.extractEnergy((int)power, simulated); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TeslaUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TeslaUtil.java index 9c61e2191..8a8d69d32 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TeslaUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TeslaUtil.java @@ -10,75 +10,21 @@ package de.ellpeck.actuallyadditions.mod.util.compat; -import cofh.api.energy.IEnergyHandler; -import cofh.api.energy.IEnergyProvider; -import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; import net.darkhax.tesla.api.ITeslaConsumer; import net.darkhax.tesla.api.ITeslaHolder; import net.darkhax.tesla.api.ITeslaProducer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.CapabilityInject; -import java.util.HashMap; -import java.util.Map; - public final class TeslaUtil{ - private static final Map TESLA_MAP = new HashMap(); @CapabilityInject(ITeslaConsumer.class) public static Capability teslaConsumer; + @CapabilityInject(ITeslaProducer.class) public static Capability teslaProducer; + @CapabilityInject(ITeslaHolder.class) public static Capability teslaHolder; - public static T wrapTeslaToRF(TileEntityBase tile, Capability capability, EnumFacing facing){ - boolean receive = tile instanceof IEnergyReceiver && capability == teslaConsumer; - boolean provide = tile instanceof IEnergyProvider && capability == teslaProducer; - boolean hold = tile instanceof IEnergyHandler && capability == teslaHolder; - if(receive || provide || hold){ - return (T)getHandler(tile, facing); - } - else{ - return null; - } - } - - public static void removeTile(TileEntityBase tile){ - TESLA_MAP.remove(tile); - } - - public static boolean doWrappedTeslaRFInteraction(TileEntity tileFrom, TileEntity tileTo, EnumFacing side, int maxTransfer){ - if(tileTo.hasCapability(teslaConsumer, side.getOpposite()) && tileFrom.hasCapability(teslaProducer, side)){ - ITeslaConsumer handlerTo = tileTo.getCapability(teslaConsumer, side.getOpposite()); - ITeslaProducer handlerFrom = tileFrom.getCapability(teslaProducer, side); - - if(handlerTo != null && handlerFrom != null){ - long drain = handlerFrom.takePower(maxTransfer, true); - if(drain > 0){ - long filled = handlerTo.givePower(drain, false); - handlerFrom.takePower(filled, false); - return true; - } - } - } - return false; - } - - private static TileTeslaWrapper getHandler(TileEntityBase tile, EnumFacing facing){ - TileTeslaWrapper[] handlers = TESLA_MAP.get(tile); - if(handlers == null || handlers.length != 6){ - handlers = new TileTeslaWrapper[6]; - TESLA_MAP.put(tile, handlers); - } - - int side = facing == null ? 0 : facing.ordinal(); - if(handlers[side] == null){ - handlers[side] = new TileTeslaWrapper(tile, facing); - } - return handlers[side]; - } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TileTeslaWrapper.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TileTeslaWrapper.java deleted file mode 100644 index 4af0ee6cd..000000000 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/TileTeslaWrapper.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * This file ("TileTeslaWrapper.java") is part of the Actually Additions mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://ellpeck.de/actaddlicense - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015-2016 Ellpeck - */ - -package de.ellpeck.actuallyadditions.mod.util.compat; - -import cofh.api.energy.IEnergyHandler; -import cofh.api.energy.IEnergyProvider; -import cofh.api.energy.IEnergyReceiver; -import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; -import net.darkhax.tesla.api.ITeslaConsumer; -import net.darkhax.tesla.api.ITeslaHolder; -import net.darkhax.tesla.api.ITeslaProducer; -import net.minecraft.util.EnumFacing; - -public class TileTeslaWrapper implements ITeslaProducer, ITeslaHolder, ITeslaConsumer{ - - private final EnumFacing side; - private final TileEntityBase tile; - - public TileTeslaWrapper(TileEntityBase tile, EnumFacing side){ - this.tile = tile; - this.side = side; - } - - @Override - public long givePower(long power, boolean simulated){ - if(this.tile instanceof IEnergyReceiver){ - return ((IEnergyReceiver)this.tile).receiveEnergy(this.side, (int)power, simulated); - } - else{ - return 0; - } - } - - @Override - public long getStoredPower(){ - if(this.tile instanceof IEnergyHandler){ - return ((IEnergyHandler)this.tile).getEnergyStored(this.side); - } - else{ - return 0; - } - } - - @Override - public long getCapacity(){ - if(this.tile instanceof IEnergyHandler){ - return ((IEnergyHandler)this.tile).getMaxEnergyStored(this.side); - } - else{ - return 0; - } - } - - @Override - public long takePower(long power, boolean simulated){ - if(this.tile instanceof IEnergyProvider){ - return ((IEnergyProvider)this.tile).extractEnergy(this.side, (int)power, simulated); - } - else{ - return 0; - } - } -} diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 6f870783a..e8a396e30 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -996,7 +996,7 @@ booklet.actuallyadditions.chapter.fireworkBox.text.1=The Firework Box i booklet.actuallyadditions.chapter.fireworkBox.text.2=When right-clicking it with a Redstone Torch in hand, it will change between a mode where it gets deactivated by Redstone and a mode where it responds to pulses. booklet.actuallyadditions.chapter.rf.name=CF - Crystal Flux -booklet.actuallyadditions.chapter.rf.text.1=Since the recent diminishment of what is known as RF, a new way of storing power has arisen: Crystal Flux. This stuff is generated by all Actually Additions machines, however, it is compatible with Tesla, Redstone Flux and Forge Units, meaning machines that use Crystal Flux and machines that use any of the other systems mentioned can be interconnected without needing any sort of conversion. +booklet.actuallyadditions.chapter.rf.text.1=Since the recent diminishment of what was known as Redstone Flux, a new way of storing power has arisen: Crystal Flux. This stuff is generated by all Actually Additions machines, however, it is compatible with Tesla and Forge Units, meaning machines that use Crystal Flux and machines that use any of the other systems mentioned can be interconnected without needing any sort of conversion. booklet.actuallyadditions.chapter.rf.text.2=To transfer Crystal Flux, just place a thing that generates or transfers it next to one that uses or stores it (or any one of the systems mentioned above). You can use an Energizer to charge up items. booklet.actuallyadditions.chapter.enderStar.name=Ender Star