Drop support for RF

This commit is contained in:
Raoul Van den Berge
2016-11-26 23:18:57 +01:00
parent 90d501924b
commit 21cfd6cd20
22 changed files with 85 additions and 690 deletions

View File

@@ -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
*/

View File

@@ -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();

View File

@@ -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();

View File

@@ -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));
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -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)) {

View File

@@ -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)) {