Drop support for RF
This commit is contained in:
@@ -1,11 +0,0 @@
|
||||
package cofh.api;
|
||||
|
||||
public class CoFHAPIProps {
|
||||
|
||||
private CoFHAPIProps() {
|
||||
|
||||
}
|
||||
|
||||
public static final String VERSION = "1.8.9R1.2.0B1";
|
||||
|
||||
}
|
||||
@@ -1,161 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
/**
|
||||
* Reference implementation of {@link IEnergyStorage}. Use/extend this or implement your own.
|
||||
*
|
||||
* @author King Lemming
|
||||
*/
|
||||
public class EnergyStorage implements IEnergyStorage {
|
||||
|
||||
protected int energy;
|
||||
protected int capacity;
|
||||
protected int maxReceive;
|
||||
protected int maxExtract;
|
||||
|
||||
public EnergyStorage(int capacity) {
|
||||
|
||||
this(capacity, capacity, capacity);
|
||||
}
|
||||
|
||||
public EnergyStorage(int capacity, int maxTransfer) {
|
||||
|
||||
this(capacity, maxTransfer, maxTransfer);
|
||||
}
|
||||
|
||||
public EnergyStorage(int capacity, int maxReceive, int maxExtract) {
|
||||
|
||||
this.capacity = capacity;
|
||||
this.maxReceive = maxReceive;
|
||||
this.maxExtract = maxExtract;
|
||||
}
|
||||
|
||||
public EnergyStorage readFromNBT(NBTTagCompound nbt) {
|
||||
|
||||
this.energy = nbt.getInteger("Energy");
|
||||
|
||||
if (energy > capacity) {
|
||||
energy = capacity;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
|
||||
|
||||
if (energy < 0) {
|
||||
energy = 0;
|
||||
}
|
||||
nbt.setInteger("Energy", energy);
|
||||
return nbt;
|
||||
}
|
||||
|
||||
public EnergyStorage setCapacity(int capacity) {
|
||||
|
||||
this.capacity = capacity;
|
||||
|
||||
if (energy > capacity) {
|
||||
energy = capacity;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public EnergyStorage setMaxTransfer(int maxTransfer) {
|
||||
|
||||
setMaxReceive(maxTransfer);
|
||||
setMaxExtract(maxTransfer);
|
||||
return this;
|
||||
}
|
||||
|
||||
public EnergyStorage setMaxReceive(int maxReceive) {
|
||||
|
||||
this.maxReceive = maxReceive;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EnergyStorage setMaxExtract(int maxExtract) {
|
||||
|
||||
this.maxExtract = maxExtract;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getMaxReceive() {
|
||||
|
||||
return maxReceive;
|
||||
}
|
||||
|
||||
public int getMaxExtract() {
|
||||
|
||||
return maxExtract;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is included to allow for server to client sync. Do not call this externally to the containing Tile Entity, as not all IEnergyHandlers
|
||||
* are guaranteed to have it.
|
||||
*
|
||||
* @param energy
|
||||
*/
|
||||
public void setEnergyStored(int energy) {
|
||||
|
||||
this.energy = energy;
|
||||
|
||||
if (this.energy > capacity) {
|
||||
this.energy = capacity;
|
||||
} else if (this.energy < 0) {
|
||||
this.energy = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is included to allow the containing tile to directly and efficiently modify the energy contained in the EnergyStorage. Do not rely on this
|
||||
* externally, as not all IEnergyHandlers are guaranteed to have it.
|
||||
*
|
||||
* @param energy
|
||||
*/
|
||||
public void modifyEnergyStored(int energy) {
|
||||
|
||||
this.energy += energy;
|
||||
|
||||
if (this.energy > capacity) {
|
||||
this.energy = capacity;
|
||||
} else if (this.energy < 0) {
|
||||
this.energy = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* IEnergyStorage */
|
||||
@Override
|
||||
public int receiveEnergy(int maxReceive, boolean simulate) {
|
||||
|
||||
int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive));
|
||||
|
||||
if (!simulate) {
|
||||
energy += energyReceived;
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(int maxExtract, boolean simulate) {
|
||||
|
||||
int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract));
|
||||
|
||||
if (!simulate) {
|
||||
energy -= energyExtracted;
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored() {
|
||||
|
||||
return energy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored() {
|
||||
|
||||
return capacity;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
|
||||
/**
|
||||
* Implement this interface on TileEntities which should connect to energy transportation blocks. This is intended for blocks which generate energy but do not
|
||||
* accept it; otherwise just use IEnergyHandler.
|
||||
* <p>
|
||||
* 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);
|
||||
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
/**
|
||||
* Implement this interface on Item classes that support external manipulation of their internal energy storages.
|
||||
* <p>
|
||||
* 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);
|
||||
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
/**
|
||||
* Implement this interface on Tile Entities which should handle energy, generally storing it in one or more internal {@link IEnergyStorage} objects.
|
||||
* <p>
|
||||
* A reference implementation is provided {@link TileEnergyHandler}.
|
||||
* <p>
|
||||
* 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);
|
||||
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
|
||||
/**
|
||||
* Implement this interface on Tile Entities which should provide energy, generally storing it in one or more internal {@link IEnergyStorage} objects.
|
||||
* <p>
|
||||
* 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);
|
||||
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
|
||||
/**
|
||||
* Implement this interface on Tile Entities which should receive energy, generally storing it in one or more internal {@link IEnergyStorage} objects.
|
||||
* <p>
|
||||
* 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);
|
||||
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
/**
|
||||
* An energy storage is the unit of interaction with Energy inventories.<br>
|
||||
* This is not to be implemented on TileEntities. This is for internal use only.
|
||||
* <p>
|
||||
* 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();
|
||||
|
||||
}
|
||||
@@ -1,112 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
/**
|
||||
* Reference implementation of {@link IEnergyContainerItem}. Use/extend this or implement your own.
|
||||
*
|
||||
* @author King Lemming
|
||||
*/
|
||||
public class ItemEnergyContainer extends Item implements IEnergyContainerItem {
|
||||
|
||||
protected int capacity;
|
||||
protected int maxReceive;
|
||||
protected int maxExtract;
|
||||
|
||||
public ItemEnergyContainer() {
|
||||
|
||||
}
|
||||
|
||||
public ItemEnergyContainer(int capacity) {
|
||||
|
||||
this(capacity, capacity, capacity);
|
||||
}
|
||||
|
||||
public ItemEnergyContainer(int capacity, int maxTransfer) {
|
||||
|
||||
this(capacity, maxTransfer, maxTransfer);
|
||||
}
|
||||
|
||||
public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) {
|
||||
|
||||
this.capacity = capacity;
|
||||
this.maxReceive = maxReceive;
|
||||
this.maxExtract = maxExtract;
|
||||
}
|
||||
|
||||
public ItemEnergyContainer setCapacity(int capacity) {
|
||||
|
||||
this.capacity = capacity;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ItemEnergyContainer setMaxTransfer(int maxTransfer) {
|
||||
|
||||
setMaxReceive(maxTransfer);
|
||||
setMaxExtract(maxTransfer);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ItemEnergyContainer setMaxReceive(int maxReceive) {
|
||||
|
||||
this.maxReceive = maxReceive;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ItemEnergyContainer setMaxExtract(int maxExtract) {
|
||||
|
||||
this.maxExtract = maxExtract;
|
||||
return this;
|
||||
}
|
||||
|
||||
/* IEnergyContainerItem */
|
||||
@Override
|
||||
public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) {
|
||||
|
||||
if (!container.hasTagCompound()) {
|
||||
container.setTagCompound(new NBTTagCompound());
|
||||
}
|
||||
int energy = container.getTagCompound().getInteger("Energy");
|
||||
int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive));
|
||||
|
||||
if (!simulate) {
|
||||
energy += energyReceived;
|
||||
container.getTagCompound().setInteger("Energy", energy);
|
||||
}
|
||||
return energyReceived;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) {
|
||||
|
||||
if (container.getTagCompound() == null || !container.getTagCompound().hasKey("Energy")) {
|
||||
return 0;
|
||||
}
|
||||
int energy = container.getTagCompound().getInteger("Energy");
|
||||
int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract));
|
||||
|
||||
if (!simulate) {
|
||||
energy -= energyExtracted;
|
||||
container.getTagCompound().setInteger("Energy", energy);
|
||||
}
|
||||
return energyExtracted;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(ItemStack container) {
|
||||
|
||||
if (container.getTagCompound() == null || !container.getTagCompound().hasKey("Energy")) {
|
||||
return 0;
|
||||
}
|
||||
return container.getTagCompound().getInteger("Energy");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(ItemStack container) {
|
||||
|
||||
return capacity;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
/**
|
||||
* Reference implementation of {@link IEnergyReceiver} and {@link IEnergyProvider}. Use/extend this or implement your own.
|
||||
* <p>
|
||||
* This class is really meant to summarize how each interface is properly used.
|
||||
*
|
||||
* @author King Lemming
|
||||
*/
|
||||
public class TileEnergyHandler extends TileEntity implements IEnergyReceiver, IEnergyProvider {
|
||||
|
||||
protected EnergyStorage storage = new EnergyStorage(32000);
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
|
||||
super.readFromNBT(nbt);
|
||||
storage.readFromNBT(nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
|
||||
|
||||
super.writeToNBT(nbt);
|
||||
storage.writeToNBT(nbt);
|
||||
return nbt;
|
||||
}
|
||||
|
||||
/* IEnergyConnection */
|
||||
@Override
|
||||
public boolean canConnectEnergy(EnumFacing from) {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* IEnergyReceiver */
|
||||
@Override
|
||||
public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate) {
|
||||
|
||||
return storage.receiveEnergy(maxReceive, simulate);
|
||||
}
|
||||
|
||||
/* IEnergyProvider */
|
||||
@Override
|
||||
public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate) {
|
||||
|
||||
return storage.extractEnergy(maxExtract, simulate);
|
||||
}
|
||||
|
||||
/* IEnergyHandler */
|
||||
@Override
|
||||
public int getEnergyStored(EnumFacing from) {
|
||||
|
||||
return storage.getEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(EnumFacing from) {
|
||||
|
||||
return storage.getMaxEnergyStored();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
/**
|
||||
* (C) 2014-2016 Team CoFH / CoFH / Cult of the Full Hub
|
||||
* http://www.teamcofh.com
|
||||
*/
|
||||
@API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHAPI", provides = "CoFHAPI|energy")
|
||||
package cofh.api.energy;
|
||||
|
||||
import cofh.api.CoFHAPIProps;
|
||||
import net.minecraftforge.fml.common.API;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network;
|
||||
|
||||
import cofh.api.energy.EnergyStorage;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
@@ -25,11 +24,6 @@ import java.util.List;
|
||||
* Represents a network master, usually is a controller.
|
||||
*/
|
||||
public interface INetworkMaster {
|
||||
/**
|
||||
* @return the energy storage of this network
|
||||
*/
|
||||
EnergyStorage getEnergy();
|
||||
|
||||
/**
|
||||
* @return the energy usage per tick of this network
|
||||
*/
|
||||
|
||||
@@ -2,17 +2,17 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSGui;
|
||||
import com.raoulvdberge.refinedstorage.RSItems;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
|
||||
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.energy.CapabilityEnergy;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
|
||||
public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
|
||||
private INetworkItemHandler handler;
|
||||
@@ -32,7 +32,7 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
|
||||
|
||||
@Override
|
||||
public boolean onOpen(INetworkMaster network, EntityPlayer player, World controllerWorld, EnumHand hand) {
|
||||
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE && RSItems.WIRELESS_CRAFTING_MONITOR.getEnergyStored(stack) <= RS.INSTANCE.config.wirelessCraftingMonitorOpenUsage) {
|
||||
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessCraftingMonitorOpenUsage) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -47,11 +47,11 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
|
||||
|
||||
public void drainEnergy(int energy) {
|
||||
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE) {
|
||||
ItemWirelessGrid item = RSItems.WIRELESS_GRID;
|
||||
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
|
||||
|
||||
item.extractEnergy(stack, energy, false);
|
||||
energyStorage.extractEnergy(energy, false);
|
||||
|
||||
if (item.getEnergyStored(stack) <= 0) {
|
||||
if (energyStorage.getEnergyStored() <= 0) {
|
||||
handler.onClose(player);
|
||||
|
||||
player.closeScreen();
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSGui;
|
||||
import com.raoulvdberge.refinedstorage.RSItems;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||
@@ -12,6 +11,8 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.energy.CapabilityEnergy;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
|
||||
public class NetworkItemWirelessGrid implements INetworkItem {
|
||||
private INetworkItemHandler handler;
|
||||
@@ -31,7 +32,7 @@ public class NetworkItemWirelessGrid implements INetworkItem {
|
||||
|
||||
@Override
|
||||
public boolean onOpen(INetworkMaster network, EntityPlayer player, World controllerWorld, EnumHand hand) {
|
||||
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE && RSItems.WIRELESS_GRID.getEnergyStored(stack) <= RS.INSTANCE.config.wirelessGridOpenUsage) {
|
||||
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE && stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() <= RS.INSTANCE.config.wirelessGridOpenUsage) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -46,11 +47,11 @@ public class NetworkItemWirelessGrid implements INetworkItem {
|
||||
|
||||
public void drainEnergy(int energy) {
|
||||
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) {
|
||||
ItemWirelessGrid item = RSItems.WIRELESS_GRID;
|
||||
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
|
||||
|
||||
item.extractEnergy(stack, energy, false);
|
||||
energyStorage.extractEnergy(energy, false);
|
||||
|
||||
if (item.getEnergyStored(stack) <= 0) {
|
||||
if (energyStorage.getEnergyStored() <= 0) {
|
||||
handler.onClose(player);
|
||||
|
||||
player.closeScreen();
|
||||
|
||||
@@ -94,7 +94,7 @@ public class BlockController extends BlockBase {
|
||||
NBTTagCompound tag = stack.getTagCompound();
|
||||
|
||||
if (tag != null && tag.hasKey(TileController.NBT_ENERGY)) {
|
||||
controller.getEnergy().receiveEnergy(tag.getInteger(TileController.NBT_ENERGY), false);
|
||||
controller.getEnergy().setEnergyStored(tag.getInteger(TileController.NBT_ENERGY));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,42 +1,18 @@
|
||||
package com.raoulvdberge.refinedstorage.integration.forgeenergy;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.tile.TileController;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import net.minecraftforge.energy.EnergyStorage;
|
||||
|
||||
public class ControllerEnergyForge implements IEnergyStorage {
|
||||
private TileController controller;
|
||||
|
||||
public ControllerEnergyForge(TileController controller) {
|
||||
this.controller = controller;
|
||||
public class ControllerEnergyForge extends EnergyStorage {
|
||||
public ControllerEnergyForge() {
|
||||
super(RS.INSTANCE.config.controllerCapacity, Integer.MAX_VALUE, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(int maxReceive, boolean simulate) {
|
||||
return controller.getEnergy().receiveEnergy(maxReceive, simulate);
|
||||
public void setMaxEnergyStored(int capacity) {
|
||||
this.capacity = capacity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(int maxExtract, boolean simulate) {
|
||||
return controller.getEnergy().extractEnergy(maxExtract, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored() {
|
||||
return controller.getEnergy().getEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored() {
|
||||
return controller.getEnergy().getMaxEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtract() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canReceive() {
|
||||
return true;
|
||||
public void setEnergyStored(int energy) {
|
||||
this.energy = energy;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,43 +1,47 @@
|
||||
package com.raoulvdberge.refinedstorage.integration.forgeenergy;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RSItems;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.energy.EnergyStorage;
|
||||
|
||||
public class NetworkItemEnergyForge extends EnergyStorage {
|
||||
private static final String NBT_ENERGY = "Energy";
|
||||
|
||||
public class NetworkItemEnergyForge implements IEnergyStorage {
|
||||
private ItemStack stack;
|
||||
|
||||
public NetworkItemEnergyForge(ItemStack stack) {
|
||||
public NetworkItemEnergyForge(ItemStack stack, int capacity) {
|
||||
super(capacity, Integer.MAX_VALUE, Integer.MAX_VALUE);
|
||||
|
||||
this.stack = stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(int maxReceive, boolean simulate) {
|
||||
return RSItems.WIRELESS_GRID.receiveEnergy(stack, maxReceive, simulate);
|
||||
int received = super.receiveEnergy(maxReceive, simulate);
|
||||
|
||||
if (received > 0 && !simulate) {
|
||||
if (!stack.hasTagCompound()) {
|
||||
stack.setTagCompound(new NBTTagCompound());
|
||||
}
|
||||
|
||||
stack.getTagCompound().setInteger(NBT_ENERGY, getEnergyStored());
|
||||
}
|
||||
|
||||
return received;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(int maxExtract, boolean simulate) {
|
||||
return RSItems.WIRELESS_GRID.extractEnergy(stack, maxExtract, simulate);
|
||||
}
|
||||
int extracted = super.extractEnergy(maxExtract, simulate);
|
||||
|
||||
@Override
|
||||
public int getEnergyStored() {
|
||||
return RSItems.WIRELESS_GRID.getEnergyStored(stack);
|
||||
}
|
||||
if (extracted > 0 && !simulate) {
|
||||
if (!stack.hasTagCompound()) {
|
||||
stack.setTagCompound(new NBTTagCompound());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored() {
|
||||
return RSItems.WIRELESS_GRID.getMaxEnergyStored(stack);
|
||||
}
|
||||
stack.getTagCompound().setInteger(NBT_ENERGY, getEnergyStored());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtract() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canReceive() {
|
||||
return true;
|
||||
return extracted;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.raoulvdberge.refinedstorage.integration.tesla;
|
||||
|
||||
import cofh.api.energy.EnergyStorage;
|
||||
import com.raoulvdberge.refinedstorage.integration.forgeenergy.ControllerEnergyForge;
|
||||
import net.darkhax.tesla.api.ITeslaConsumer;
|
||||
import net.darkhax.tesla.api.ITeslaHolder;
|
||||
|
||||
public class ControllerEnergyTesla implements ITeslaHolder, ITeslaConsumer {
|
||||
private EnergyStorage energy;
|
||||
private ControllerEnergyForge energy;
|
||||
|
||||
public ControllerEnergyTesla(EnergyStorage energy) {
|
||||
public ControllerEnergyTesla(ControllerEnergyForge energy) {
|
||||
this.energy = energy;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.raoulvdberge.refinedstorage.integration.tesla;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RSItems;
|
||||
import net.darkhax.tesla.api.ITeslaConsumer;
|
||||
import net.darkhax.tesla.api.ITeslaHolder;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.energy.CapabilityEnergy;
|
||||
|
||||
public class NetworkItemEnergyTesla implements ITeslaHolder, ITeslaConsumer {
|
||||
private ItemStack stack;
|
||||
@@ -14,16 +14,16 @@ public class NetworkItemEnergyTesla implements ITeslaHolder, ITeslaConsumer {
|
||||
|
||||
@Override
|
||||
public long getStoredPower() {
|
||||
return RSItems.WIRELESS_GRID.getEnergyStored(stack);
|
||||
return stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getCapacity() {
|
||||
return RSItems.WIRELESS_GRID.getMaxEnergyStored(stack);
|
||||
return stack.getCapability(CapabilityEnergy.ENERGY, null).getMaxEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long givePower(long power, boolean simulated) {
|
||||
return RSItems.WIRELESS_GRID.receiveEnergy(stack, (int) power, simulated);
|
||||
return stack.getCapability(CapabilityEnergy.ENERGY, null).receiveEnergy((int) power, simulated);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.raoulvdberge.refinedstorage.item;
|
||||
|
||||
import cofh.api.energy.ItemEnergyContainer;
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
|
||||
import com.raoulvdberge.refinedstorage.integration.forgeenergy.NetworkItemEnergyForge;
|
||||
@@ -25,11 +23,12 @@ import net.minecraftforge.common.DimensionManager;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||
import net.minecraftforge.energy.CapabilityEnergy;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class ItemNetworkItem extends ItemEnergyContainer implements INetworkItemProvider {
|
||||
public abstract class ItemNetworkItem extends ItemBase implements INetworkItemProvider {
|
||||
public static final int TYPE_NORMAL = 0;
|
||||
public static final int TYPE_CREATIVE = 1;
|
||||
|
||||
@@ -39,13 +38,12 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
|
||||
private static final String NBT_DIMENSION_ID = "DimensionID";
|
||||
|
||||
public ItemNetworkItem(String name) {
|
||||
super(3200);
|
||||
super(name);
|
||||
|
||||
setRegistryName(RS.ID, name);
|
||||
setMaxDamage(3200);
|
||||
setMaxStackSize(1);
|
||||
setHasSubtypes(true);
|
||||
setCreativeTab(RS.INSTANCE.tab);
|
||||
|
||||
addPropertyOverride(new ResourceLocation("connected"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f);
|
||||
}
|
||||
|
||||
@@ -89,7 +87,9 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
|
||||
|
||||
@Override
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
return 1D - ((double) getEnergyStored(stack) / (double) getMaxEnergyStored(stack));
|
||||
IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY, null);
|
||||
|
||||
return 1D - ((double) energy.getEnergyStored() / (double) energy.getMaxEnergyStored());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -107,7 +107,10 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
|
||||
list.add(new ItemStack(item, 1, TYPE_NORMAL));
|
||||
|
||||
ItemStack fullyCharged = new ItemStack(item, 1, TYPE_NORMAL);
|
||||
receiveEnergy(fullyCharged, getMaxEnergyStored(fullyCharged), false);
|
||||
|
||||
IEnergyStorage energy = fullyCharged.getCapability(CapabilityEnergy.ENERGY, null);
|
||||
energy.receiveEnergy(energy.getMaxEnergyStored(), false);
|
||||
|
||||
list.add(fullyCharged);
|
||||
|
||||
list.add(new ItemStack(item, 1, TYPE_CREATIVE));
|
||||
@@ -118,7 +121,9 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
|
||||
super.addInformation(stack, player, tooltip, advanced);
|
||||
|
||||
if (stack.getItemDamage() != TYPE_CREATIVE) {
|
||||
tooltip.add(I18n.format("misc.refinedstorage:energy_stored", getEnergyStored(stack), getMaxEnergyStored(stack)));
|
||||
IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY, null);
|
||||
|
||||
tooltip.add(I18n.format("misc.refinedstorage:energy_stored", energy.getEnergyStored(), energy.getMaxEnergyStored()));
|
||||
}
|
||||
|
||||
if (isValid(stack)) {
|
||||
@@ -187,16 +192,6 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
|
||||
return super.shouldCauseReequipAnimation(oldStack, newStack, slotChanged);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName() {
|
||||
return "item." + RS.ID + ":" + getRegistryName().getResourcePath();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName(ItemStack stack) {
|
||||
return getUnlocalizedName() + "." + stack.getItemDamage();
|
||||
}
|
||||
|
||||
public boolean isValid(ItemStack stack) {
|
||||
return stack.hasTagCompound()
|
||||
&& stack.getTagCompound().hasKey(NBT_CONTROLLER_X)
|
||||
@@ -221,7 +216,7 @@ public abstract class ItemNetworkItem extends ItemEnergyContainer implements INe
|
||||
@Override
|
||||
public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing) {
|
||||
if (capability == CapabilityEnergy.ENERGY) {
|
||||
return (T) new NetworkItemEnergyForge(stack);
|
||||
return (T) new NetworkItemEnergyForge(stack, 3200);
|
||||
}
|
||||
|
||||
if (IntegrationTesla.isLoaded() && (capability == TeslaCapabilities.CAPABILITY_HOLDER || capability == TeslaCapabilities.CAPABILITY_CONSUMER)) {
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.raoulvdberge.refinedstorage.tile;
|
||||
|
||||
import cofh.api.energy.EnergyStorage;
|
||||
import cofh.api.energy.IEnergyReceiver;
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||
import com.raoulvdberge.refinedstorage.RSUtils;
|
||||
@@ -76,7 +74,7 @@ import javax.annotation.Nullable;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, IRedstoneConfigurable {
|
||||
public class TileController extends TileBase implements INetworkMaster, IRedstoneConfigurable {
|
||||
public static final TileDataParameter<Integer> REDSTONE_MODE = RedstoneMode.createParameter();
|
||||
|
||||
public static final TileDataParameter<Integer> ENERGY_USAGE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileController>() {
|
||||
@@ -89,14 +87,14 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
public static final TileDataParameter<Integer> ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileController>() {
|
||||
@Override
|
||||
public Integer getValue(TileController tile) {
|
||||
return tile.getEnergy().getEnergyStored();
|
||||
return tile.energy.getEnergyStored();
|
||||
}
|
||||
});
|
||||
|
||||
public static final TileDataParameter<Integer> ENERGY_CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileController>() {
|
||||
@Override
|
||||
public Integer getValue(TileController tile) {
|
||||
return tile.getEnergy().getMaxEnergyStored();
|
||||
return tile.energy.getMaxEnergyStored();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -176,8 +174,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
private List<ICraftingTask> craftingTasksToCancel = new ArrayList<>();
|
||||
private List<NBTTagCompound> craftingTasksToRead = new ArrayList<>();
|
||||
|
||||
private EnergyStorage energy = new EnergyStorage(RS.INSTANCE.config.controllerCapacity);
|
||||
private ControllerEnergyForge energyForge = new ControllerEnergyForge(this);
|
||||
private ControllerEnergyForge energy = new ControllerEnergyForge();
|
||||
private ControllerEnergyTesla energyTesla;
|
||||
|
||||
private int lastEnergyDisplay;
|
||||
@@ -202,14 +199,13 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos getPosition() {
|
||||
return pos;
|
||||
public ControllerEnergyForge getEnergy() {
|
||||
return energy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyStorage getEnergy() {
|
||||
return energy;
|
||||
public BlockPos getPosition() {
|
||||
return pos;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -810,7 +806,9 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
public void readFromNBT(NBTTagCompound tag) {
|
||||
super.readFromNBT(tag);
|
||||
|
||||
energy.readFromNBT(tag);
|
||||
if (tag.hasKey(NBT_ENERGY)) {
|
||||
energy.setEnergyStored(tag.getInteger(NBT_ENERGY));
|
||||
}
|
||||
|
||||
redstoneMode = RedstoneMode.read(tag);
|
||||
|
||||
@@ -843,7 +841,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
public NBTTagCompound writeToNBT(NBTTagCompound tag) {
|
||||
super.writeToNBT(tag);
|
||||
|
||||
energy.writeToNBT(tag);
|
||||
tag.setInteger(NBT_ENERGY, energy.getEnergyStored());
|
||||
|
||||
redstoneMode.write(tag);
|
||||
|
||||
@@ -882,22 +880,12 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
|
||||
@Override
|
||||
public void readUpdate(NBTTagCompound tag) {
|
||||
energy.setCapacity(tag.getInteger(NBT_ENERGY_CAPACITY));
|
||||
energy.setMaxEnergyStored(tag.getInteger(NBT_ENERGY_CAPACITY));
|
||||
energy.setEnergyStored(tag.getInteger(NBT_ENERGY));
|
||||
|
||||
super.readUpdate(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate) {
|
||||
return energy.receiveEnergy(maxReceive, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(EnumFacing from) {
|
||||
return energy.getEnergyStored();
|
||||
}
|
||||
|
||||
public static int getEnergyScaled(int stored, int capacity, int scale) {
|
||||
return (int) ((float) stored / (float) capacity * (float) scale);
|
||||
}
|
||||
@@ -906,16 +894,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
return getEnergyScaled(energy.getEnergyStored(), energy.getMaxEnergyStored(), 7);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(EnumFacing from) {
|
||||
return energy.getMaxEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnectEnergy(EnumFacing from) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RedstoneMode getRedstoneMode() {
|
||||
return redstoneMode;
|
||||
@@ -952,7 +930,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
@Override
|
||||
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
|
||||
if (capability == CapabilityEnergy.ENERGY) {
|
||||
return (T) energyForge;
|
||||
return (T) energy;
|
||||
}
|
||||
|
||||
if (energyTesla != null && (capability == TeslaCapabilities.CAPABILITY_HOLDER || capability == TeslaCapabilities.CAPABILITY_CONSUMER)) {
|
||||
|
||||
Reference in New Issue
Block a user