1
0
mirror of https://github.com/turbodiesel4598/NuclearCraft synced 2025-09-23 22:54:40 +02:00

Compare commits

..

5 Commits

Author SHA1 Message Date
Tom Dodd
9637040f92 Version 2.18s
Version 2.18s
2020-05-16 17:43:08 +01:00
Tom Dodd
dc1457d7af
Merge pull request #652 from Exaxxion/more_fission_config_options
More fission config options
2020-05-16 15:49:07 +01:00
Exa
b3ae178cb6 Added new configs' description strings to the other lang files for translators to use. 2020-05-10 20:25:30 -07:00
Exa
d8cb40d16b Add config options for Fission Controller:
- Base Capacity
- Base Max Heat

Also adjusted logic to permit changing these values at runtime, which is useful
for modpack developers.

Including en_us lang file with config comments.
2020-05-10 20:16:08 -07:00
Exa
a0e4b222b0 Set specific working version of GameStages; the latest 2.0+ version breaks the build. Also update to latest Forge. 2020-05-10 19:47:42 -07:00
10 changed files with 59 additions and 20 deletions

View File

@ -1,3 +1,10 @@
v2.18s
+ Added configs to modify the base energy storage and heat capacities of fission reactors [thanks to Exaxxion!]
* Hopefully fixed fusion reactors placing and removing plasma too often
* Fixed possible crash on creating plasma fluid when other mods add their own
v2.18r v2.18r
+ Added configs to modify the tank capacities of exchanger and condenser tubes + Added configs to modify the tank capacities of exchanger and condenser tubes

View File

@ -1,7 +1,7 @@
mc_version=1.12.2 mc_version=1.12.2
forge_version=14.23.5.2838 forge_version=14.23.5.2838
mapping_version=stable_39 mapping_version=stable_39
mod_version=2.18r mod_version=2.18s
ic2_version=2.8.170-ex112 ic2_version=2.8.170-ex112
jei_version=4.15.0.+ jei_version=4.15.0.+
@ -11,7 +11,7 @@ tic_version=1.12.2-2.12.0.157
oc_version=MC1.12.2-1.7.4.+ oc_version=MC1.12.2-1.7.4.+
cofh_core_version=1.12.2-4.6.3.+ cofh_core_version=1.12.2-4.6.3.+
common_capabilities_version=2.4.4-309 common_capabilities_version=2.4.4-309
gamestages_version=2.0.+ gamestages_version=2.0.117
baubles_version=1.12:1.5.2 baubles_version=1.12:1.5.2
conarm_version=1.12.2:1.2.4 conarm_version=1.12.2:1.2.4

View File

@ -26,7 +26,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;
public class NCConfig { public class NCConfig {
private static Configuration config = null; private static Configuration config = null;
public static final String CATEGORY_ORES = "ores"; public static final String CATEGORY_ORES = "ores";
@ -83,6 +83,8 @@ public class NCConfig {
public static double[] decay_lifetime; public static double[] decay_lifetime;
public static int[] decay_power; public static int[] decay_power;
public static int fission_base_capacity; // Default: 64000
public static int fission_base_max_heat; // Default: 25000
public static double fission_power; // Default: 1 public static double fission_power; // Default: 1
public static double fission_fuel_use; // Default: 1 public static double fission_fuel_use; // Default: 1
public static double fission_heat_generation; // Default: 1 public static double fission_heat_generation; // Default: 1
@ -453,6 +455,10 @@ public class NCConfig {
Property propertyDecayPower = config.get(CATEGORY_GENERATORS, "decay_power", new int[] {80, 80, 15, 5, 10, 15, 20, 25, 30, 40}, Lang.localise("gui.config.generators.decay_power.comment"), 0, 32767); Property propertyDecayPower = config.get(CATEGORY_GENERATORS, "decay_power", new int[] {80, 80, 15, 5, 10, 15, 20, 25, 30, 40}, Lang.localise("gui.config.generators.decay_power.comment"), 0, 32767);
propertyDecayPower.setLanguageKey("gui.config.generators.decay_power"); propertyDecayPower.setLanguageKey("gui.config.generators.decay_power");
Property propertyFissionBaseCapacity = config.get(CATEGORY_FISSION, "fission_base_capacity", 64000, Lang.localise("gui.config.fission.fission_base_capacity.comment"), 1, Integer.MAX_VALUE);
propertyFissionBaseCapacity.setLanguageKey("gui.config.fission.fission_base_capacity");
Property propertyFissionBaseMaxHeat = config.get(CATEGORY_FISSION, "fission_base_max_heat", 25000, Lang.localise("gui.config.fission.fission_base_max_heat.comment"), 1, Integer.MAX_VALUE);
propertyFissionBaseMaxHeat.setLanguageKey("gui.config.fission.fission_base_max_heat");
Property propertyFissionPower = config.get(CATEGORY_FISSION, "fission_power", 1D, Lang.localise("gui.config.fission.fission_power.comment"), 0D, 255D); Property propertyFissionPower = config.get(CATEGORY_FISSION, "fission_power", 1D, Lang.localise("gui.config.fission.fission_power.comment"), 0D, 255D);
propertyFissionPower.setLanguageKey("gui.config.fission.fission_power"); propertyFissionPower.setLanguageKey("gui.config.fission.fission_power");
Property propertyFissionFuelUse = config.get(CATEGORY_FISSION, "fission_fuel_use", 1D, Lang.localise("gui.config.fission.fission_fuel_use.comment"), 0.001D, 255D); Property propertyFissionFuelUse = config.get(CATEGORY_FISSION, "fission_fuel_use", 1D, Lang.localise("gui.config.fission.fission_fuel_use.comment"), 0.001D, 255D);
@ -981,6 +987,8 @@ public class NCConfig {
config.setCategoryPropertyOrder(CATEGORY_GENERATORS, propertyOrderGenerators); config.setCategoryPropertyOrder(CATEGORY_GENERATORS, propertyOrderGenerators);
List<String> propertyOrderFission = new ArrayList<String>(); List<String> propertyOrderFission = new ArrayList<String>();
propertyOrderFission.add(propertyFissionBaseCapacity.getName());
propertyOrderFission.add(propertyFissionBaseMaxHeat.getName());
propertyOrderFission.add(propertyFissionPower.getName()); propertyOrderFission.add(propertyFissionPower.getName());
propertyOrderFission.add(propertyFissionFuelUse.getName()); propertyOrderFission.add(propertyFissionFuelUse.getName());
propertyOrderFission.add(propertyFissionHeatGeneration.getName()); propertyOrderFission.add(propertyFissionHeatGeneration.getName());
@ -1286,6 +1294,8 @@ public class NCConfig {
decay_lifetime = readDoubleArrayFromConfig(propertyDecayLifetime); decay_lifetime = readDoubleArrayFromConfig(propertyDecayLifetime);
decay_power = readIntegerArrayFromConfig(propertyDecayPower); decay_power = readIntegerArrayFromConfig(propertyDecayPower);
fission_base_capacity = propertyFissionBaseCapacity.getInt();
fission_base_max_heat = propertyFissionBaseMaxHeat.getInt();
fission_power = propertyFissionPower.getDouble(); fission_power = propertyFissionPower.getDouble();
fission_fuel_use = propertyFissionFuelUse.getDouble(); fission_fuel_use = propertyFissionFuelUse.getDouble();
fission_heat_generation = propertyFissionHeatGeneration.getDouble(); fission_heat_generation = propertyFissionHeatGeneration.getDouble();
@ -1579,6 +1589,8 @@ public class NCConfig {
propertyDecayLifetime.set(decay_lifetime); propertyDecayLifetime.set(decay_lifetime);
propertyDecayPower.set(decay_power); propertyDecayPower.set(decay_power);
propertyFissionBaseCapacity.set(fission_base_capacity);
propertyFissionBaseMaxHeat.set(fission_base_max_heat);
propertyFissionPower.set(fission_power); propertyFissionPower.set(fission_power);
propertyFissionFuelUse.set(fission_fuel_use); propertyFissionFuelUse.set(fission_fuel_use);
propertyFissionHeatGeneration.set(fission_heat_generation); propertyFissionHeatGeneration.set(fission_heat_generation);

View File

@ -60,8 +60,6 @@ public class TileFissionController extends TileItemGenerator implements IGui<Fis
public String problemPos = ""; public String problemPos = "";
public int problemPosX = 0, problemPosY = 0, problemPosZ = 0; public int problemPosX = 0, problemPosY = 0, problemPosZ = 0;
public static final int BASE_CAPACITY = 64000, BASE_MAX_HEAT = 25000;
private boolean isActivated = false; private boolean isActivated = false;
public boolean computerActivated = false; public boolean computerActivated = false;
@ -101,7 +99,7 @@ public class TileFissionController extends TileItemGenerator implements IGui<Fis
} }
private TileFissionController(boolean newRules) { private TileFissionController(boolean newRules) {
super("fission_controller", 1, 1, 0, defaultItemSorptions(1, 1), BASE_CAPACITY, NCRecipes.fission); super("fission_controller", 1, 1, 0, defaultItemSorptions(1, 1), NCConfig.fission_base_capacity, NCRecipes.fission);
this.newRules = newRules; this.newRules = newRules;
} }
@ -345,9 +343,9 @@ public class TileFissionController extends TileItemGenerator implements IGui<Fis
} }
public int getMaxHeat() { public int getMaxHeat() {
if (NCMath.atIntLimit(getLengthX()*getLengthY()*getLengthZ(), BASE_MAX_HEAT)) return Integer.MAX_VALUE; if (NCMath.atIntLimit(getLengthX()*getLengthY()*getLengthZ(), NCConfig.fission_base_max_heat)) return Integer.MAX_VALUE;
if (getLengthX() <= 0 || getLengthY() <= 0 || getLengthZ() <= 0) return BASE_MAX_HEAT; if (getLengthX() <= 0 || getLengthY() <= 0 || getLengthZ() <= 0) return NCConfig.fission_base_max_heat;
return BASE_MAX_HEAT*getLengthX()*getLengthY()*getLengthZ(); return NCConfig.fission_base_max_heat*getLengthX()*getLengthY()*getLengthZ();
} }
// Finding Blocks // Finding Blocks
@ -775,9 +773,9 @@ public class TileFissionController extends TileItemGenerator implements IGui<Fis
} }
private int getNewCapacity() { private int getNewCapacity() {
if (NCMath.atIntLimit(getLengthX()*getLengthY()*getLengthZ(), BASE_CAPACITY)) return Integer.MAX_VALUE; if (NCMath.atIntLimit(getLengthX()*getLengthY()*getLengthZ(), NCConfig.fission_base_capacity)) return Integer.MAX_VALUE;
if (getLengthX() <= 0 || getLengthY() <= 0 || getLengthZ() <= 0) return BASE_CAPACITY; if (getLengthX() <= 0 || getLengthY() <= 0 || getLengthZ() <= 0) return NCConfig.fission_base_capacity;
return BASE_CAPACITY*getLengthX()*getLengthY()*getLengthZ(); return NCConfig.fission_base_capacity*getLengthX()*getLengthY()*getLengthZ();
} }
// Set Fuel and Power and Modify Heat // Set Fuel and Power and Modify Heat

View File

@ -39,6 +39,7 @@ import nc.util.Lang;
import nc.util.MaterialHelper; import nc.util.MaterialHelper;
import nc.util.NCUtil; import nc.util.NCUtil;
import nc.util.SoundHelper; import nc.util.SoundHelper;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@ -52,6 +53,7 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fml.common.Optional; import net.minecraftforge.fml.common.Optional;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@ -65,9 +67,7 @@ public class TileFusionCore extends TileFluidGenerator implements IGui<FusionUpd
public double processHeatVariable = 0; public double processHeatVariable = 0;
public double heat = ROOM_TEMP, efficiency, cooling, heatChange; // cooling and heatChange are in K, not kK public double heat = ROOM_TEMP, efficiency, cooling, heatChange; // cooling and heatChange are in K, not kK
public int currentEnergyStored = 0, energyChange = 0; public int currentEnergyStored = 0, energyChange = 0;
public int size = 1, complete = 0;
public int size = 1;
public int complete;
public String problem = RING_INCOMPLETE; public String problem = RING_INCOMPLETE;
public static final String RING_INCOMPLETE = Lang.localise("gui.container.fusion_core.ring_incomplete"); public static final String RING_INCOMPLETE = Lang.localise("gui.container.fusion_core.ring_incomplete");
@ -118,7 +118,7 @@ public class TileFusionCore extends TileFluidGenerator implements IGui<FusionUpd
@Override @Override
public void updateGenerator() { public void updateGenerator() {
if (!world.isRemote) { if (!world.isRemote) {
boolean wasProcessing = isProcessing; boolean wasProcessing = isProcessing, wasHotEnough = isHotEnough();
isProcessing = isProcessing(); isProcessing = isProcessing();
if (structureCount == 0) refreshMultiblock(); if (structureCount == 0) refreshMultiblock();
tickStructureCheck(); tickStructureCheck();
@ -126,15 +126,15 @@ public class TileFusionCore extends TileFluidGenerator implements IGui<FusionUpd
double previousHeat = heat; double previousHeat = heat;
run(); run();
if (isHotEnough()) doCooling(); if (isHotEnough()) doCooling();
else plasma(false);
doHeating(); doHeating();
if (wasHotEnough && !isHotEnough()) plasma(false);
heatChange = 1000*(heat - previousHeat); heatChange = 1000*(heat - previousHeat);
if (overheat()) return; if (overheat()) return;
if (isProcessing) process(); if (isProcessing) process();
else getRadiationSource().setRadiationLevel(0D); else getRadiationSource().setRadiationLevel(0D);
if (wasProcessing != isProcessing) { if (wasProcessing != isProcessing) {
if (isProcessing || recipeInfo == null) { if (isProcessing) {
plasma(isProcessing); plasma(true);
} }
updateBlockType(); updateBlockType();
sendUpdateToAllPlayers(); sendUpdateToAllPlayers();
@ -362,7 +362,9 @@ public class TileFusionCore extends TileFluidGenerator implements IGui<FusionUpd
// Setting Blocks // Setting Blocks
private static IBlockState plasmaState() { private static IBlockState plasmaState() {
return FluidRegistry.getFluid("plasma").getBlock().getDefaultState(); Fluid plasma = FluidRegistry.getFluid("plasma");
Block block = plasma == null ? null : plasma.getBlock();
return block == null ? Blocks.AIR.getDefaultState() : block.getDefaultState();
} }
public void plasma(boolean createPlasma) { public void plasma(boolean createPlasma) {

View File

@ -1667,6 +1667,10 @@ gui.config.generators.generator_rf_per_eu.comment=Wie viel RF pro erzeugtem EU v
gui.config.category.fission=Spaltungskonfigurationen gui.config.category.fission=Spaltungskonfigurationen
gui.config.category.fission.tooltip=Konfiguriere Aspekte der Kernspaltung. gui.config.category.fission.tooltip=Konfiguriere Aspekte der Kernspaltung.
gui.config.fission.fission_base_capacity=Base Capacity
gui.config.fission.fission_base_capacity.comment=The base energy capacity of the Fission Reactor. This is multiplied by the dimensions of the reactor to determine the maximum energy capacity. Note that the "RF per IC2 EU" property will override this one if it is larger.
gui.config.fission.fission_base_max_heat=Base Max Heat
gui.config.fission.fission_base_max_heat.comment=The base maximum heat of the Fission Reactor. This is multiplied by the dimensions of the reactor to determine the maximum heat capacity.
gui.config.fission.fission_power=Energieerzeugungsmultiplikator gui.config.fission.fission_power=Energieerzeugungsmultiplikator
gui.config.fission.fission_power.comment=Verändert die erzeugte Energie von Spaltungsreaktoren. gui.config.fission.fission_power.comment=Verändert die erzeugte Energie von Spaltungsreaktoren.
gui.config.fission.fission_fuel_use=Brennstoffverbrauchsmultiplikator gui.config.fission.fission_fuel_use=Brennstoffverbrauchsmultiplikator

View File

@ -1890,6 +1890,10 @@ gui.config.generators.generator_rf_per_eu.comment=The RF used per EU emitted for
gui.config.category.fission=Fission Configs gui.config.category.fission=Fission Configs
gui.config.category.fission.tooltip=Configure aspects of nuclear fission. gui.config.category.fission.tooltip=Configure aspects of nuclear fission.
gui.config.fission.fission_base_capacity=Base Capacity
gui.config.fission.fission_base_capacity.comment=The base energy capacity of fission reactors. This is multiplied by the volume of the reactor to determine the energy capacity.
gui.config.fission.fission_base_max_heat=Base Max Heat
gui.config.fission.fission_base_max_heat.comment=The base maximum heat of fission reactors. This is multiplied by the volume of the reactor to determine the maximum heat.
gui.config.fission.fission_power=Power Gen Multiplier gui.config.fission.fission_power=Power Gen Multiplier
gui.config.fission.fission_power.comment=Modifies the power generated by fission reactors. gui.config.fission.fission_power.comment=Modifies the power generated by fission reactors.
gui.config.fission.fission_fuel_use=Fuel Use Multiplier gui.config.fission.fission_fuel_use=Fuel Use Multiplier

View File

@ -1446,6 +1446,10 @@ gui.config.generators.generator_update_rate.comment=Ticks para cada checagem de
gui.config.category.fission=Configuração de Fissão gui.config.category.fission=Configuração de Fissão
gui.config.category.fission.tooltip=Configura aspectos da fissão nuclear gui.config.category.fission.tooltip=Configura aspectos da fissão nuclear
gui.config.fission.fission_base_capacity=Base Capacity
gui.config.fission.fission_base_capacity.comment=The base energy capacity of the Fission Reactor. This is multiplied by the dimensions of the reactor to determine the maximum energy capacity. Note that the "RF per IC2 EU" property will override this one if it is larger.
gui.config.fission.fission_base_max_heat=Base Max Heat
gui.config.fission.fission_base_max_heat.comment=The base maximum heat of the Fission Reactor. This is multiplied by the dimensions of the reactor to determine the maximum heat capacity.
gui.config.fission.fission_power=Geração de Energia gui.config.fission.fission_power=Geração de Energia
gui.config.fission.fission_power.comment=Modifica a energia gerada por reatores de fissão gui.config.fission.fission_power.comment=Modifica a energia gerada por reatores de fissão
gui.config.fission.fission_fuel_use=Uso de Combustível gui.config.fission.fission_fuel_use=Uso de Combustível

View File

@ -1848,6 +1848,10 @@ gui.config.generators.generator_rf_per_eu.comment=The RF used per EU emitted for
gui.config.category.fission=Fission Configs gui.config.category.fission=Fission Configs
gui.config.category.fission.tooltip=Configure aspects of nuclear fission. gui.config.category.fission.tooltip=Configure aspects of nuclear fission.
gui.config.fission.fission_base_capacity=Base Capacity
gui.config.fission.fission_base_capacity.comment=The base energy capacity of the Fission Reactor. This is multiplied by the dimensions of the reactor to determine the maximum energy capacity. Note that the "RF per IC2 EU" property will override this one if it is larger.
gui.config.fission.fission_base_max_heat=Base Max Heat
gui.config.fission.fission_base_max_heat.comment=The base maximum heat of the Fission Reactor. This is multiplied by the dimensions of the reactor to determine the maximum heat capacity.
gui.config.fission.fission_power=Power Gen Multiplier gui.config.fission.fission_power=Power Gen Multiplier
gui.config.fission.fission_power.comment=Modifies the power generated by fission reactors. gui.config.fission.fission_power.comment=Modifies the power generated by fission reactors.
gui.config.fission.fission_fuel_use=Fuel Use Multiplier gui.config.fission.fission_fuel_use=Fuel Use Multiplier

View File

@ -1447,6 +1447,10 @@ gui.config.generators.generator_update_rate.comment=Ticks per fluid content chec
gui.config.category.fission=裂变 gui.config.category.fission=裂变
gui.config.category.fission.tooltip=裂变方面的配置. gui.config.category.fission.tooltip=裂变方面的配置.
gui.config.fission.fission_base_capacity=Base Capacity
gui.config.fission.fission_power.comment=Modifies the power generated by fission reactors. gui.config.fission.fission_base_capacity.comment=The base energy capacity of the Fission Reactor. This is multiplied by the dimensions of the reactor to determine the maximum energy capacity. Note that the "RF per IC2 EU" property will override this one if it is larger.
gui.config.fission.fission_base_max_heat=Base Max Heat
gui.config.fission.fission_base_max_heat.comment=The base maximum heat of the Fission Reactor. This is multiplied by the dimensions of the reactor to determine the maximum heat capacity.
gui.config.fission.fission_power=Power Gen Multiplier gui.config.fission.fission_power=Power Gen Multiplier
gui.config.fission.fission_power.comment=Modifies the power generated by fission reactors. gui.config.fission.fission_power.comment=Modifies the power generated by fission reactors.
gui.config.fission.fission_fuel_use=Fuel Use Multiplier gui.config.fission.fission_fuel_use=Fuel Use Multiplier