From 376f77cb226e583867b9c17ea1c5fe7b894f4d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 14 Feb 2021 13:13:08 +0100 Subject: [PATCH] Make device energy cost configurable. --- src/main/java/li/cil/oc2/common/Config.java | 124 +++++++----------- .../java/li/cil/oc2/common/Constants.java | 18 --- src/main/resources/assets/oc2/lang/en_us.json | 16 --- 3 files changed, 51 insertions(+), 107 deletions(-) diff --git a/src/main/java/li/cil/oc2/common/Config.java b/src/main/java/li/cil/oc2/common/Config.java index c1ef5860..3d06e09e 100644 --- a/src/main/java/li/cil/oc2/common/Config.java +++ b/src/main/java/li/cil/oc2/common/Config.java @@ -92,6 +92,14 @@ public final class Config { chargerEnergyPerTick = COMMON_INSTANCE.chargerEnergyPerTick.get(); chargerEnergyStorage = COMMON_INSTANCE.chargerEnergyStorage.get(); + memoryEnergyPerMegabytePerTick = COMMON_INSTANCE.memoryEnergyPerMegabytePerTick.get(); + hardDriveEnergyPerMegabytePerTick = COMMON_INSTANCE.hardDriveEnergyPerMegabytePerTick.get(); + networkInterfaceEnergyPerTick = COMMON_INSTANCE.networkInterfaceEnergyPerTick.get(); + redstoneInterfaceCardEnergyPerTick = COMMON_INSTANCE.redstoneInterfaceCardEnergyPerTick.get(); + blockOperationsModuleEnergyPerTick = COMMON_INSTANCE.blockOperationsModuleEnergyPerTick.get(); + inventoryOperationsModuleEnergyPerTick = COMMON_INSTANCE.inventoryOperationsModuleEnergyPerTick.get(); + + blockOperationsModuleToolLevel = COMMON_INSTANCE.blockOperationsModuleToolLevel.get(); fakePlayerUUID = UUID.fromString(COMMON_INSTANCE.fakePlayerUUID.get()); @@ -115,95 +123,65 @@ public final class Config { public final ForgeConfigSpec.IntValue chargerEnergyPerTick; public final ForgeConfigSpec.IntValue chargerEnergyStorage; + public final ForgeConfigSpec.DoubleValue memoryEnergyPerMegabytePerTick; + public final ForgeConfigSpec.DoubleValue hardDriveEnergyPerMegabytePerTick; + public final ForgeConfigSpec.IntValue networkInterfaceEnergyPerTick; + public final ForgeConfigSpec.IntValue redstoneInterfaceCardEnergyPerTick; + public final ForgeConfigSpec.IntValue blockOperationsModuleEnergyPerTick; + public final ForgeConfigSpec.IntValue inventoryOperationsModuleEnergyPerTick; + public final ForgeConfigSpec.IntValue blockOperationsModuleToolLevel; public final ForgeConfigSpec.ConfigValue fakePlayerUUID; public CommonSettings(final ForgeConfigSpec.Builder builder) { builder.push("vm"); - - maxAllocatedMemory = builder - .translation(Constants.CONFIG_MAX_ALLOCATED_MEMORY) - .comment("The maximum amount of memory that may be allocated to run virtual machines.") - .defineInRange("maxAllocatedMemory", Config.maxAllocatedMemory, 0L, 64L * Constants.GIGABYTE); - - maxMemorySize = builder - .translation(Constants.CONFIG_MAX_MEMORY_SIZE) - .comment("The maximum size of a single memory device.") - .defineInRange("maxMemorySize", Config.maxMemorySize, 0, 256 * Constants.MEGABYTE); - - maxHardDriveSize = builder - .translation(Constants.CONFIG_MAX_HARD_DRIVE_SIZE) - .comment("The maximum size of a single hard drive device.") - .defineInRange("maxHardDriveSize", Config.maxHardDriveSize, 0, 512 * Constants.MEGABYTE); - - maxFlashMemorySize = builder - .translation(Constants.CONFIG_MAX_FLASH_MEMORY_SIZE) - .comment("The maximum size of a single flash memory device.") - .defineInRange("maxFlashMemorySize", Config.maxFlashMemorySize, 0, 128 * Constants.MEGABYTE); - + { + maxAllocatedMemory = builder.defineInRange("maxAllocatedMemory", Config.maxAllocatedMemory, 0L, 64L * Constants.GIGABYTE); + maxMemorySize = builder.defineInRange("maxMemorySize", Config.maxMemorySize, 0, 256 * Constants.MEGABYTE); + maxHardDriveSize = builder.defineInRange("maxHardDriveSize", Config.maxHardDriveSize, 0, 512 * Constants.MEGABYTE); + maxFlashMemorySize = builder.defineInRange("maxFlashMemorySize", Config.maxFlashMemorySize, 0, 128 * Constants.MEGABYTE); + } builder.pop(); builder.push("energy"); + { + builder.push("blocks"); + { + busCableEnergyPerTick = builder.defineInRange("busCableEnergyPerTick", Config.busCableEnergyPerTick, 0, Integer.MAX_VALUE); + busInterfaceEnergyPerTick = builder.defineInRange("busInterfaceEnergyPerTick", Config.busInterfaceEnergyPerTick, 0, Integer.MAX_VALUE); + computerEnergyPerTick = builder.defineInRange("computerEnergyPerTick", Config.computerEnergyPerTick, 0, Integer.MAX_VALUE); + computerEnergyStorage = builder.defineInRange("computerEnergyStorage", Config.computerEnergyStorage, 0, Integer.MAX_VALUE); + robotEnergyPerTick = builder.defineInRange("robotEnergyPerTick", Config.robotEnergyPerTick, 0, Integer.MAX_VALUE); + robotEnergyStorage = builder.defineInRange("robotEnergyStorage", Config.robotEnergyStorage, 0, Integer.MAX_VALUE); + chargerEnergyPerTick = builder.defineInRange("chargerEnergyPerTick", Config.chargerEnergyPerTick, 0, Integer.MAX_VALUE); + chargerEnergyStorage = builder.defineInRange("chargerEnergyStorage", Config.chargerEnergyStorage, 0, Integer.MAX_VALUE); + } + builder.pop(); - busCableEnergyPerTick = builder - .translation(Constants.CONFIG_BUS_CABLE_COMPLEXITY) - .comment("The amount of energy (Forge Energy/RF) a single bus cable consumes per tick.") - .defineInRange("busCableEnergyPerTick", Config.busCableEnergyPerTick, 0, Double.MAX_VALUE); - - busInterfaceEnergyPerTick = builder - .translation(Constants.CONFIG_BUS_INTERFACE_COMPLEXITY) - .comment("The amount of energy (Forge Energy/RF) a single bus interface consumes per tick.") - .defineInRange("busInterfaceEnergyPerTick", Config.busInterfaceEnergyPerTick, 0, Double.MAX_VALUE); - - computerEnergyPerTick = builder - .translation(Constants.CONFIG_COMPUTER_ENERGY_PER_TICK) - .comment("The amount of energy (Forge Energy/RF) a computer consumes per tick. Set to zero to disable.") - .defineInRange("computerEnergyPerTick", Config.computerEnergyPerTick, 0, Integer.MAX_VALUE); - - computerEnergyStorage = builder - .translation(Constants.CONFIG_COMPUTER_ENERGY_STORAGE) - .comment("The amount of energy (Forge Energy/RF) a computer can store internally.") - .defineInRange("computerEnergyStorage", Config.computerEnergyStorage, 0, Integer.MAX_VALUE); - - robotEnergyPerTick = builder - .translation(Constants.CONFIG_ROBOT_ENERGY_PER_TICK) - .comment("The amount of energy (Forge Energy/RF) a robot consumes per tick. Set to zero to disable.") - .defineInRange("robotEnergyPerTick", Config.robotEnergyPerTick, 0, Integer.MAX_VALUE); - - robotEnergyStorage = builder - .translation(Constants.CONFIG_ROBOT_ENERGY_STORAGE) - .comment("The amount of energy (Forge Energy/RF) a robot can store internally.") - .defineInRange("robotEnergyStorage", Config.robotEnergyStorage, 0, Integer.MAX_VALUE); - - chargerEnergyPerTick = builder - .translation(Constants.CONFIG_CHARGER_ENERGY_PER_TICK) - .comment("The maximum amount of energy (Forge Energy/RF) a charger transfers per tick. Set to zero to disable.") - .defineInRange("chargerEnergyPerTick", Config.chargerEnergyPerTick, 0, Integer.MAX_VALUE); - - chargerEnergyStorage = builder - .translation(Constants.CONFIG_CHARGER_ENERGY_STORAGE) - .comment("The amount of energy (Forge Energy/RF) a charger can store internally.") - .defineInRange("chargerEnergyStorage", Config.chargerEnergyStorage, 0, Integer.MAX_VALUE); - + builder.push("items"); + { + memoryEnergyPerMegabytePerTick = builder.defineInRange("memoryEnergyPerMegabytePerTick", Config.memoryEnergyPerMegabytePerTick, 0, Integer.MAX_VALUE); + hardDriveEnergyPerMegabytePerTick = builder.defineInRange("hardDriveEnergyPerMegabytePerTick", Config.hardDriveEnergyPerMegabytePerTick, 0, Integer.MAX_VALUE); + networkInterfaceEnergyPerTick = builder.defineInRange("networkInterfaceEnergyPerTick", Config.networkInterfaceEnergyPerTick, 0, Integer.MAX_VALUE); + redstoneInterfaceCardEnergyPerTick = builder.defineInRange("redstoneInterfaceCardEnergyPerTick", Config.redstoneInterfaceCardEnergyPerTick, 0, Integer.MAX_VALUE); + blockOperationsModuleEnergyPerTick = builder.defineInRange("blockOperationsModuleEnergyPerTick", Config.blockOperationsModuleEnergyPerTick, 0, Integer.MAX_VALUE); + inventoryOperationsModuleEnergyPerTick = builder.defineInRange("inventoryOperationsModuleEnergyPerTick", Config.inventoryOperationsModuleEnergyPerTick, 0, Integer.MAX_VALUE); + } + builder.pop(); + } builder.pop(); builder.push("gameplay"); - - blockOperationsModuleToolLevel = builder - .translation(Constants.CONFIG_BLOCK_OPERATIONS_MODULE_TOOL_LEVEL) - .comment("Tool level the block operations module operates at.") - .defineInRange("modules.block_operations.toolLevel", Config.blockOperationsModuleToolLevel, 0, Integer.MAX_VALUE); - + { + blockOperationsModuleToolLevel = builder.defineInRange("modules.blockOperations.toolLevel", Config.blockOperationsModuleToolLevel, 0, Integer.MAX_VALUE); + } builder.pop(); builder.push("admin"); - - fakePlayerUUID = builder - .translation(Constants.CONFIG_FAKE_PLAYER_UUID) - .comment("The UUID used for the ForgeFakePlayer used by robots.") - .define("fakePlayerUUID", Config.fakePlayerUUID.toString()); - + { + fakePlayerUUID = builder.define("fakePlayerUUID", Config.fakePlayerUUID.toString()); + } builder.pop(); } } diff --git a/src/main/java/li/cil/oc2/common/Constants.java b/src/main/java/li/cil/oc2/common/Constants.java index 0df7d23b..8ccf6896 100644 --- a/src/main/java/li/cil/oc2/common/Constants.java +++ b/src/main/java/li/cil/oc2/common/Constants.java @@ -67,24 +67,6 @@ public final class Constants { /////////////////////////////////////////////////////////////////// - public static final String CONFIG_MAX_ALLOCATED_MEMORY = "config.oc2.vm.maxAllocatedMemory"; - public static final String CONFIG_MAX_MEMORY_SIZE = "config.oc2.vm.maxMemorySize"; - public static final String CONFIG_MAX_HARD_DRIVE_SIZE = "config.oc2.vm.maxHardDriveSize"; - public static final String CONFIG_MAX_FLASH_MEMORY_SIZE = "config.oc2.vm.maxFlashMemorySize"; - public static final String CONFIG_BLOCK_OPERATIONS_MODULE_TOOL_LEVEL = "config.oc2.modules.block_operations.toolLevel"; - public static final String CONFIG_FAKE_PLAYER_UUID = "config.oc2.admin.fakePlayerUUID"; - public static final String CONFIG_BUS_CABLE_COMPLEXITY = "config.oc2.busCableComplexity"; - public static final String CONFIG_BUS_INTERFACE_COMPLEXITY = "config.oc2.busInterfaceComplexity"; - public static final String CONFIG_BUS_COMPLEXITY_ENERGY_PER_TICK = "config.oc2.complexityEnergyPerTick"; - public static final String CONFIG_COMPUTER_ENERGY_PER_TICK = "config.oc2.computerEnergyPerTick"; - public static final String CONFIG_COMPUTER_ENERGY_STORAGE = "config.oc2.computerEnergyStorage"; - public static final String CONFIG_ROBOT_ENERGY_PER_TICK = "config.oc2.robotEnergyPerTick"; - public static final String CONFIG_ROBOT_ENERGY_STORAGE = "config.oc2.robotEnergyStorage"; - public static final String CONFIG_CHARGER_ENERGY_PER_TICK = "config.oc2.chargerEnergyPerTick"; - public static final String CONFIG_CHARGER_ENERGY_STORAGE = "config.oc2.chargerEnergyStorage"; - - /////////////////////////////////////////////////////////////////// - public static final String COMPUTER_SCREEN_CAPTURE_INPUT_CAPTION = "gui.oc2.computer.capture_input.capt"; public static final String COMPUTER_SCREEN_CAPTURE_INPUT_DESCRIPTION = "gui.oc2.computer.capture_input.desc"; public static final String COMPUTER_SCREEN_POWER_CAPTION = "gui.oc2.computer.power.capt"; diff --git a/src/main/resources/assets/oc2/lang/en_us.json b/src/main/resources/assets/oc2/lang/en_us.json index 7b7dfebd..f5ccccf5 100644 --- a/src/main/resources/assets/oc2/lang/en_us.json +++ b/src/main/resources/assets/oc2/lang/en_us.json @@ -35,22 +35,6 @@ "entity.oc2.robot": "Robot", - "config.oc2.vm.maxAllocatedMemory": "Maximum allocated memory", - "config.oc2.vm.maxMemorySize:": "Maximum memory device size", - "config.oc2.vm.maxHardDriveSize": "Maximum hard drive device size", - "config.oc2.vm.maxFlashMemorySize:": "Maximum flash memory device size", - "config.oc2.modules.block_operations.toolLevel": "Block operations module tool level", - "config.oc2.admin.fakePlayerUUID": "Fake Player UUID", - "config.oc2.busCableComplexity": "Bus Cable complexity", - "config.oc2.busInterfaceComplexity": "Bus Interface complexity", - "config.oc2.complexityEnergyPerTick": "Complexity energy/tick", - "config.oc2.computerEnergyPerTick": "Computer energy/tick", - "config.oc2.computerEnergyStorage": "Computer energy storage", - "config.oc2.robotEnergyPerTick": "Robot energy/tick", - "config.oc2.robotEnergyStorage": "Robot energy storage", - "config.oc2.chargerEnergyPerTick": "Charger energy/tick", - "config.oc2.chargerEnergyStorage": "Charger energy storage", - "gui.oc2.computer.error.unknown": "Unknown Error", "gui.oc2.computer.error.missing_firmware": "Missing Firmware", "gui.oc2.computer.error.insufficient_memory": "Insufficient Memory",