diff --git a/src/main/java/refinedstorage/RefinedStorage.java b/src/main/java/refinedstorage/RefinedStorage.java index 07299b69b..cfd75a91e 100755 --- a/src/main/java/refinedstorage/RefinedStorage.java +++ b/src/main/java/refinedstorage/RefinedStorage.java @@ -64,6 +64,7 @@ public final class RefinedStorage { public int craftingGridRfUsage; public int patternGridRfUsage; + public int controller; public boolean controllerUsesRf; public int wirelessTransmitterBaseRange; @@ -104,6 +105,7 @@ public final class RefinedStorage { craftingGridRfUsage = config.getInt("craftingGrid", "energy", 4, 0, Integer.MAX_VALUE, "The RF/t used by Crafting Grids"); patternGridRfUsage = config.getInt("patternGrid", "energy", 3, 0, Integer.MAX_VALUE, "The RF/t used by Pattern Grids"); + controller = config.getInt("controller", "energy", 32000, 0, Integer.MAX_VALUE, "The energy capacity of the controller"); controllerUsesRf = config.getBoolean("controllerUsesRf", "energy", true, "Whether the controller uses RF"); wirelessTransmitterBaseRange = config.getInt("range", "wirelessTransmitter", 16, 0, Integer.MAX_VALUE, "The base range of the Wireless Transmitter"); diff --git a/src/main/java/refinedstorage/block/BlockController.java b/src/main/java/refinedstorage/block/BlockController.java index 04e1ffa8b..d21324a0a 100755 --- a/src/main/java/refinedstorage/block/BlockController.java +++ b/src/main/java/refinedstorage/block/BlockController.java @@ -119,6 +119,7 @@ public class BlockController extends BlockBase { stack.setTagCompound(new NBTTagCompound()); stack.getTagCompound().setInteger(TileController.NBT_ENERGY, ((TileController) world.getTileEntity(pos)).getEnergy().getEnergyStored()); + stack.getTagCompound().setInteger(TileController.NBT_ENERGY_CAPACITY, ((TileController) world.getTileEntity(pos)).getEnergy().getMaxEnergyStored()); drops.add(stack); diff --git a/src/main/java/refinedstorage/gui/GuiController.java b/src/main/java/refinedstorage/gui/GuiController.java index d9f2cecda..0fae42bab 100755 --- a/src/main/java/refinedstorage/gui/GuiController.java +++ b/src/main/java/refinedstorage/gui/GuiController.java @@ -102,7 +102,7 @@ public class GuiController extends GuiBase { } if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) { - drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergy().getEnergyStored(), TileController.ENERGY_CAPACITY)); + drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergy().getEnergyStored(), controller.getEnergy().getMaxEnergyStored())); } } diff --git a/src/main/java/refinedstorage/item/ItemBlockController.java b/src/main/java/refinedstorage/item/ItemBlockController.java index 76eb8abe1..8f20acc69 100755 --- a/src/main/java/refinedstorage/item/ItemBlockController.java +++ b/src/main/java/refinedstorage/item/ItemBlockController.java @@ -5,6 +5,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.block.EnumControllerType; import refinedstorage.tile.controller.TileController; @@ -20,12 +21,19 @@ public class ItemBlockController extends ItemBlockBase { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { if (stack.getMetadata() != EnumControllerType.CREATIVE.getId()) { int energyStored = 0; + int energyCapacity = RefinedStorage.INSTANCE.controller; - if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(TileController.NBT_ENERGY)) { - energyStored = stack.getTagCompound().getInteger(TileController.NBT_ENERGY); + if (stack.getTagCompound() != null) { + if (stack.getTagCompound().hasKey(TileController.NBT_ENERGY)) { + energyStored = stack.getTagCompound().getInteger(TileController.NBT_ENERGY); + } + + if (stack.getTagCompound().hasKey(TileController.NBT_ENERGY_CAPACITY)) { + energyCapacity = stack.getTagCompound().getInteger(TileController.NBT_ENERGY_CAPACITY); + } } - list.add(I18n.format("misc.refinedstorage:energy_stored", energyStored, TileController.ENERGY_CAPACITY)); + list.add(I18n.format("misc.refinedstorage:energy_stored", energyStored, energyCapacity)); } } @@ -43,7 +51,7 @@ public class ItemBlockController extends ItemBlockBase { tag = new NBTTagCompound(); } - tag.setInteger(TileController.NBT_ENERGY, stack.getMetadata() == EnumControllerType.CREATIVE.getId() ? TileController.ENERGY_CAPACITY : 0); + tag.setInteger(TileController.NBT_ENERGY, stack.getMetadata() == EnumControllerType.CREATIVE.getId() ? RefinedStorage.INSTANCE.controller : 0); return stack; } diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index d81749825..b28c46e08 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -50,10 +50,9 @@ import refinedstorage.tile.config.RedstoneMode; import java.util.*; public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, ISynchronizedContainer, IRedstoneModeConfig { - public static final int ENERGY_CAPACITY = 32000; - public static final String NBT_CRAFTING_TASKS = "CraftingTasks"; public static final String NBT_ENERGY = "Energy"; + public static final String NBT_ENERGY_CAPACITY = "EnergyCapacity"; private GridHandler gridHandler = new GridHandler(this); private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this); @@ -72,7 +71,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR private List craftingTasksToAdd = new ArrayList(); private List craftingTasksToCancel = new ArrayList(); - private EnergyStorage energy = new EnergyStorage(ENERGY_CAPACITY); + private EnergyStorage energy = new EnergyStorage(RefinedStorage.INSTANCE.controller); private int energyUsage; private int lastEnergyDisplay; @@ -560,6 +559,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR public NBTTagCompound writeUpdate(NBTTagCompound tag) { super.writeUpdate(tag); + tag.setInteger(NBT_ENERGY_CAPACITY, energy.getMaxEnergyStored()); tag.setInteger(NBT_ENERGY, energy.getEnergyStored()); return tag; @@ -567,6 +567,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR @Override public void readUpdate(NBTTagCompound tag) { + energy.setCapacity(tag.getInteger(NBT_ENERGY_CAPACITY)); energy.setEnergyStored(tag.getInteger(NBT_ENERGY)); super.readUpdate(tag); @@ -583,7 +584,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR } public int getEnergyScaled(int i) { - return (int) ((float) energy.getEnergyStored() / (float) ENERGY_CAPACITY * (float) i); + return (int) ((float) energy.getEnergyStored() / (float) energy.getMaxEnergyStored() * (float) i); } public int getEnergyScaledForDisplay() {