From 644f6445329db58295d4aa54e02f5f4a03626640 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Thu, 10 Oct 2019 14:10:12 +0200 Subject: [PATCH] Add client config, add config for grid energy usage --- .../com/raoulvdberge/refinedstorage/RS.java | 3 ++ .../refinedstorage/RSOldConfig.java | 29 ----------- .../apiimpl/network/node/GridNetworkNode.java | 13 +++-- .../refinedstorage/config/ClientConfig.java | 52 +++++++++++++++++++ .../refinedstorage/config/ServerConfig.java | 22 ++++++++ .../refinedstorage/screen/BaseScreen.java | 3 +- .../screen/GuiCrafterManager.java | 2 +- .../screen/grid/GridScreen.java | 5 +- .../assets/refinedstorage/lang/en_us.json | 3 +- 9 files changed, 89 insertions(+), 43 deletions(-) create mode 100644 src/main/java/com/raoulvdberge/refinedstorage/config/ClientConfig.java diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RS.java b/src/main/java/com/raoulvdberge/refinedstorage/RS.java index 0064fb7c6..91f2f2546 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RS.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RS.java @@ -15,6 +15,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.factory.FluidStorage import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.factory.ItemStorageDiskFactory; import com.raoulvdberge.refinedstorage.block.*; import com.raoulvdberge.refinedstorage.capability.NetworkNodeProxyCapability; +import com.raoulvdberge.refinedstorage.config.ClientConfig; import com.raoulvdberge.refinedstorage.config.ServerConfig; import com.raoulvdberge.refinedstorage.container.ControllerContainer; import com.raoulvdberge.refinedstorage.container.DiskDriveContainer; @@ -63,11 +64,13 @@ public final class RS { public static final NetworkHandler NETWORK_HANDLER = new NetworkHandler(); public static final ItemGroup MAIN_GROUP = new MainItemGroup(); public static final ServerConfig SERVER_CONFIG = new ServerConfig(); + public static final ClientConfig CLIENT_CONFIG = new ClientConfig(); public RS() { DistExecutor.runWhenOn(Dist.CLIENT, () -> ClientSetup::new); ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, SERVER_CONFIG.getSpec()); + ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, CLIENT_CONFIG.getSpec()); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onCommonSetup); FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(Block.class, this::onRegisterBlocks); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSOldConfig.java b/src/main/java/com/raoulvdberge/refinedstorage/RSOldConfig.java index 426b9d6ff..099bc4397 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSOldConfig.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSOldConfig.java @@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage; public class RSOldConfig { //region Energy - public int cableUsage; public int constructorUsage; public int crafterUsage; public int crafterPerPatternUsage; @@ -10,8 +9,6 @@ public class RSOldConfig { public int crafterManagerUsage; public int destructorUsage; public int detectorUsage; - public int diskDriveUsage; - public int diskDrivePerDiskUsage; public int externalStorageUsage; public int externalStoragePerStorageUsage; public int exporterUsage; @@ -22,7 +19,6 @@ public class RSOldConfig { public int storageUsage; public int fluidStorageUsage; public int wirelessTransmitterUsage; - public int gridUsage; public int craftingGridUsage; public int patternGridUsage; public int fluidGridUsage; @@ -33,12 +29,6 @@ public class RSOldConfig { public int securityManagerPerSecurityCardUsage; //endregion - //region Grid - public int maxRowsStretch; - public boolean largeFont; - public boolean detailedTooltip; - //endregion - //region Wireless Transmitter public int wirelessTransmitterBaseRange; public int wirelessTransmitterRangePerUpgrade; @@ -92,8 +82,6 @@ public class RSOldConfig { //region Categories private static final String ENERGY = "energy"; - private static final String CONTROLLER = "controller"; - private static final String GRID = "grid"; private static final String WIRELESS_TRANSMITTER = "wirelessTransmitter"; private static final String WIRELESS_GRID = "wirelessGrid"; private static final String PORTABLE_GRID = "portableGrid"; @@ -106,9 +94,6 @@ public class RSOldConfig { /*private void loadConfig() { //region Energy - controllerBaseUsage = config.getInt("controllerBase", ENERGY, 0, 0, Integer.MAX_VALUE, "The base energy used by the Controller"); - controllerMaxReceive = config.getInt("controllerMaxReceive", ENERGY, Integer.MAX_VALUE, 0, Integer.MAX_VALUE, "The maximum energy the controller receives per tick"); - cableUsage = config.getInt("cable", ENERGY, 0, 0, Integer.MAX_VALUE, "The energy used by Cables"); constructorUsage = config.getInt("constructor", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Constructors"); crafterUsage = config.getInt("crafter", ENERGY, 2, 0, Integer.MAX_VALUE, "The base energy used by Crafters"); crafterPerPatternUsage = config.getInt("crafterPerPattern", ENERGY, 1, 0, Integer.MAX_VALUE, "The additional energy used per Pattern in a Crafter"); @@ -116,8 +101,6 @@ public class RSOldConfig { crafterManagerUsage = config.getInt("crafterManager", ENERGY, 4, 0, Integer.MAX_VALUE, "The energy used by Crafter Managers"); destructorUsage = config.getInt("destructor", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Destructors"); detectorUsage = config.getInt("detector", ENERGY, 2, 0, Integer.MAX_VALUE, "The energy used by Detectors"); - diskDriveUsage = config.getInt("diskDrive", ENERGY, 0, 0, Integer.MAX_VALUE, "The base energy used by Disk Drives"); - diskDrivePerDiskUsage = config.getInt("diskDrivePerDisk", ENERGY, 1, 0, Integer.MAX_VALUE, "The additional energy used by Storage Disks in Disk Drives"); externalStorageUsage = config.getInt("externalStorage", ENERGY, 0, 0, Integer.MAX_VALUE, "The base energy used by External Storages"); externalStoragePerStorageUsage = config.getInt("externalStoragePerStorage", ENERGY, 1, 0, Integer.MAX_VALUE, "The additional energy used per connected storage to an External Storage"); exporterUsage = config.getInt("exporter", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Exporters"); @@ -128,7 +111,6 @@ public class RSOldConfig { storageUsage = config.getInt("storage", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Storage Blocks"); fluidStorageUsage = config.getInt("fluidStorage", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Fluid Storage Blocks"); wirelessTransmitterUsage = config.getInt("wirelessTransmitter", ENERGY, 8, 0, Integer.MAX_VALUE, "The energy used by Wireless Transmitters"); - gridUsage = config.getInt("grid", ENERGY, 2, 0, Integer.MAX_VALUE, "The energy used by Grids"); craftingGridUsage = config.getInt("craftingGrid", ENERGY, 4, 0, Integer.MAX_VALUE, "The energy used by Crafting Grids"); patternGridUsage = config.getInt("patternGrid", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Pattern Grids"); fluidGridUsage = config.getInt("fluidGrid", ENERGY, 2, 0, Integer.MAX_VALUE, "The energy used by Fluid Grids"); @@ -139,17 +121,6 @@ public class RSOldConfig { securityManagerPerSecurityCardUsage = config.getInt("securityManagerPerSecurityCard", ENERGY, 10, 0, Integer.MAX_VALUE, "The additional energy used by Security Cards in Security Managers"); //endregion - //region Controller - controllerCapacity = config.getInt("capacity", CONTROLLER, 32000, 0, Integer.MAX_VALUE, "The energy capacity of the Controller"); - controllerUsesEnergy = config.getBoolean("usesEnergy", CONTROLLER, true, "Whether the Controller uses energy"); - //endregion - - //region Grid - maxRowsStretch = config.getInt("maxRowsStretch", GRID, Integer.MAX_VALUE, 3, Integer.MAX_VALUE, "The maximum amount of rows that the Grid can show when stretched"); - largeFont = config.getBoolean("largeFont", GRID, false, "Whether the Grid should use a large font for stack quantity display"); - detailedTooltip = config.getBoolean("detailedTooltip", GRID, true, "Whether the Grid should display a detailed tooltip when hovering over an item or fluid"); - //endregion - //region Wireless Transmitter wirelessTransmitterBaseRange = config.getInt("range", WIRELESS_TRANSMITTER, 16, 0, Integer.MAX_VALUE, "The base range of the Wireless Transmitter"); wirelessTransmitterRangePerUpgrade = config.getInt("rangePerUpgrade", WIRELESS_TRANSMITTER, 8, 0, Integer.MAX_VALUE, "The additional range per Range Upgrade in the Wireless Transmitter"); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/GridNetworkNode.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/GridNetworkNode.java index eac3ffb70..2ab15e98c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/GridNetworkNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/GridNetworkNode.java @@ -171,19 +171,18 @@ public class GridNetworkNode extends NetworkNode implements IGridNetworkAware, I @Override public int getEnergyUsage() { - /* @TODO switch (getGridType()) { + switch (getGridType()) { case NORMAL: - return RS.INSTANCE.config.gridUsage; + return RS.SERVER_CONFIG.getGrid().getUsage(); case CRAFTING: - return RS.INSTANCE.config.craftingGridUsage; + return 0; case PATTERN: - return RS.INSTANCE.config.patternGridUsage; + return 0; case FLUID: - return RS.INSTANCE.config.fluidGridUsage; + return 0; default: return 0; - }*/ - return 0; + } } public void setViewType(int viewType) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/config/ClientConfig.java b/src/main/java/com/raoulvdberge/refinedstorage/config/ClientConfig.java new file mode 100644 index 000000000..b93ef88b3 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/config/ClientConfig.java @@ -0,0 +1,52 @@ +package com.raoulvdberge.refinedstorage.config; + +import net.minecraftforge.common.ForgeConfigSpec; + +public class ClientConfig { + private ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder(); + private ForgeConfigSpec spec; + + private Grid grid; + + public ClientConfig() { + grid = new Grid(); + + spec = builder.build(); + } + + public ForgeConfigSpec getSpec() { + return spec; + } + + public Grid getGrid() { + return grid; + } + + public class Grid { + private final ForgeConfigSpec.IntValue maxRowsStretch; + private final ForgeConfigSpec.BooleanValue detailedTooltip; + private final ForgeConfigSpec.BooleanValue largeFont; + + public Grid() { + builder.push("grid"); + + maxRowsStretch = builder.comment("The maximum amount of rows that the Grid can show when stretched").defineInRange("maxRowsStretch", Integer.MAX_VALUE, 3, Integer.MAX_VALUE); + detailedTooltip = builder.comment("Whether the Grid should display a detailed tooltip when hovering over an item or fluid").define("detailedTooltip", true); + largeFont = builder.comment("Whether the Grid should use a large font for stack quantity display").define("largeFont", false); + + builder.pop(); + } + + public int getMaxRowsStretch() { + return maxRowsStretch.get(); + } + + public boolean getDetailedTooltip() { + return detailedTooltip.get(); + } + + public boolean getLargeFont() { + return largeFont.get(); + } + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/config/ServerConfig.java b/src/main/java/com/raoulvdberge/refinedstorage/config/ServerConfig.java index 8d3165679..389f591dc 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/config/ServerConfig.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/config/ServerConfig.java @@ -8,12 +8,14 @@ public class ServerConfig { private Controller controller; private Cable cable; + private Grid grid; private DiskDrive diskDrive; private Upgrades upgrades; public ServerConfig() { controller = new Controller(); cable = new Cable(); + grid = new Grid(); diskDrive = new DiskDrive(); upgrades = new Upgrades(); @@ -36,6 +38,10 @@ public class ServerConfig { return upgrades; } + public Grid getGrid() { + return grid; + } + public ForgeConfigSpec getSpec() { return spec; } @@ -112,6 +118,22 @@ public class ServerConfig { } } + public class Grid { + private final ForgeConfigSpec.IntValue usage; + + public Grid() { + builder.push("grid"); + + usage = builder.comment("The energy used by Grids").defineInRange("usage", 2, 0, Integer.MAX_VALUE); + + builder.pop(); + } + + public int getUsage() { + return usage.get(); + } + } + public class Upgrades { private final ForgeConfigSpec.IntValue rangeUpgradeUsage; private final ForgeConfigSpec.IntValue speedUpgradeUsage; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java index 1c3413a1a..8ab111b3c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/BaseScreen.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.screen; import com.mojang.blaze3d.platform.GlStateManager; +import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.container.slot.filter.FluidFilterSlot; import com.raoulvdberge.refinedstorage.render.FluidRenderer; @@ -269,7 +270,7 @@ public abstract class BaseScreen extends ContainerScreen } public void renderQuantity(int x, int y, String qty) { - boolean large = minecraft.getForceUnicodeFont() /* TODO || RS.INSTANCE.config.largeFont*/; + boolean large = minecraft.getForceUnicodeFont() || RS.CLIENT_CONFIG.getGrid().getLargeFont(); GlStateManager.pushMatrix(); GlStateManager.translatef(x, y, 1); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafterManager.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafterManager.java index dcaf8955b..04d78a5b1 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafterManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/GuiCrafterManager.java @@ -64,7 +64,7 @@ public class GuiCrafterManager extends BaseScreen imple case IGrid.SIZE_STRETCH: int screenSpaceAvailable = height - getTopHeight() - getBottomHeight(); - return Math.max(3, Math.min((screenSpaceAvailable / 18) - 3, RS.INSTANCE.config.maxRowsStretch)); + return Math.max(3, Math.min((screenSpaceAvailable / 18) - 3, Integer.MAX_VALUE)); // TODO CrafterManager MaxRowsStretch case IGrid.SIZE_SMALL: return 3; case IGrid.SIZE_MEDIUM: diff --git a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GridScreen.java b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GridScreen.java index f82960a9b..bbf46575c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GridScreen.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/screen/grid/GridScreen.java @@ -226,7 +226,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo case IGrid.SIZE_STRETCH: int screenSpaceAvailable = height - getTopHeight() - getBottomHeight(); - return Math.max(3, Math.min((screenSpaceAvailable / 18) - 3, Integer.MAX_VALUE));//@TODO: MaxRowsStretch + return Math.max(3, Math.min((screenSpaceAvailable / 18) - 3, RS.CLIENT_CONFIG.getGrid().getMaxRowsStretch())); case IGrid.SIZE_SMALL: return 3; case IGrid.SIZE_MEDIUM: @@ -410,8 +410,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo ItemStack stack = gridStack instanceof ItemGridStack ? ((ItemGridStack) gridStack).getStack() : ItemStack.EMPTY; - // @TODO DetailedToolTip - RenderUtils.drawTooltipWithSmallText(textLines, smallTextLines, true, stack, mouseX, mouseY, xSize, ySize, font); + RenderUtils.drawTooltipWithSmallText(textLines, smallTextLines, RS.CLIENT_CONFIG.getGrid().getDetailedTooltip(), stack, mouseX, mouseY, xSize, ySize, font); } @Override diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.json b/src/main/resources/assets/refinedstorage/lang/en_us.json index 23e8904d7..9d6018aa5 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_us.json +++ b/src/main/resources/assets/refinedstorage/lang/en_us.json @@ -123,8 +123,7 @@ "misc.refinedstorage.last_modified.weeks": "Last modified %d weeks ago by %s", "misc.refinedstorage.last_modified.year": "Last modified %d year ago by %s", "misc.refinedstorage.last_modified.years": "Last modified %d years ago by %s", - "sidebutton.refinedstorage:compare.1": "Use damage", - "sidebutton.refinedstorage:compare.2": "Use NBT", + "sidebutton.refinedstorage:compare.1": "Use NBT", "sidebutton.refinedstorage:redstone_mode": "Redstone mode", "sidebutton.refinedstorage:redstone_mode.0": "Ignore redstone signal", "sidebutton.refinedstorage:redstone_mode.1": "Only work with redstone signal",