Make the controller capacity configurable

This commit is contained in:
Raoul Van den Berge
2016-07-01 20:57:56 +02:00
parent 8ab6c23d9a
commit b9a704d781
5 changed files with 21 additions and 9 deletions

View File

@@ -64,6 +64,7 @@ public final class RefinedStorage {
public int craftingGridRfUsage; public int craftingGridRfUsage;
public int patternGridRfUsage; public int patternGridRfUsage;
public int controller;
public boolean controllerUsesRf; public boolean controllerUsesRf;
public int wirelessTransmitterBaseRange; 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"); 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"); 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"); 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"); wirelessTransmitterBaseRange = config.getInt("range", "wirelessTransmitter", 16, 0, Integer.MAX_VALUE, "The base range of the Wireless Transmitter");

View File

@@ -119,6 +119,7 @@ public class BlockController extends BlockBase {
stack.setTagCompound(new NBTTagCompound()); stack.setTagCompound(new NBTTagCompound());
stack.getTagCompound().setInteger(TileController.NBT_ENERGY, ((TileController) world.getTileEntity(pos)).getEnergy().getEnergyStored()); 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); drops.add(stack);

View File

@@ -102,7 +102,7 @@ public class GuiController extends GuiBase {
} }
if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) { 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()));
} }
} }

View File

@@ -5,6 +5,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.block.EnumControllerType; import refinedstorage.block.EnumControllerType;
import refinedstorage.tile.controller.TileController; 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) { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) {
if (stack.getMetadata() != EnumControllerType.CREATIVE.getId()) { if (stack.getMetadata() != EnumControllerType.CREATIVE.getId()) {
int energyStored = 0; int energyStored = 0;
int energyCapacity = RefinedStorage.INSTANCE.controller;
if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(TileController.NBT_ENERGY)) { if (stack.getTagCompound() != null) {
energyStored = stack.getTagCompound().getInteger(TileController.NBT_ENERGY); 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 = 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; return stack;
} }

View File

@@ -50,10 +50,9 @@ import refinedstorage.tile.config.RedstoneMode;
import java.util.*; import java.util.*;
public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, ISynchronizedContainer, IRedstoneModeConfig { 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_CRAFTING_TASKS = "CraftingTasks";
public static final String NBT_ENERGY = "Energy"; public static final String NBT_ENERGY = "Energy";
public static final String NBT_ENERGY_CAPACITY = "EnergyCapacity";
private GridHandler gridHandler = new GridHandler(this); private GridHandler gridHandler = new GridHandler(this);
private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this); private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this);
@@ -72,7 +71,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
private List<ICraftingTask> craftingTasksToAdd = new ArrayList<ICraftingTask>(); private List<ICraftingTask> craftingTasksToAdd = new ArrayList<ICraftingTask>();
private List<ICraftingTask> craftingTasksToCancel = new ArrayList<ICraftingTask>(); private List<ICraftingTask> craftingTasksToCancel = new ArrayList<ICraftingTask>();
private EnergyStorage energy = new EnergyStorage(ENERGY_CAPACITY); private EnergyStorage energy = new EnergyStorage(RefinedStorage.INSTANCE.controller);
private int energyUsage; private int energyUsage;
private int lastEnergyDisplay; private int lastEnergyDisplay;
@@ -560,6 +559,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
public NBTTagCompound writeUpdate(NBTTagCompound tag) { public NBTTagCompound writeUpdate(NBTTagCompound tag) {
super.writeUpdate(tag); super.writeUpdate(tag);
tag.setInteger(NBT_ENERGY_CAPACITY, energy.getMaxEnergyStored());
tag.setInteger(NBT_ENERGY, energy.getEnergyStored()); tag.setInteger(NBT_ENERGY, energy.getEnergyStored());
return tag; return tag;
@@ -567,6 +567,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
@Override @Override
public void readUpdate(NBTTagCompound tag) { public void readUpdate(NBTTagCompound tag) {
energy.setCapacity(tag.getInteger(NBT_ENERGY_CAPACITY));
energy.setEnergyStored(tag.getInteger(NBT_ENERGY)); energy.setEnergyStored(tag.getInteger(NBT_ENERGY));
super.readUpdate(tag); super.readUpdate(tag);
@@ -583,7 +584,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
} }
public int getEnergyScaled(int i) { 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() { public int getEnergyScaledForDisplay() {