From 83a0f84b11d7bb87a9ab6f4b08d4fbf6bb0b0ace Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 6 Mar 2026 14:40:15 +0100 Subject: [PATCH] i'm commitmaxxing af --- changelog | 5 +++++ .../recipes/AssemblyMachineRecipes.java | 2 +- .../tileentity/machine/rbmk/RBMKDials.java | 22 ------------------- .../rbmk/TileEntityRBMKControlAuto.java | 2 +- .../machine/rbmk/TileEntityRBMKRodReaSim.java | 20 ++++++----------- 5 files changed, 14 insertions(+), 37 deletions(-) diff --git a/changelog b/changelog index 9be2b3edd..2d4dc8be5 100644 --- a/changelog +++ b/changelog @@ -42,6 +42,10 @@ * In a 5x5 square around the cooler, all components are cooled down by 200°C per tick, down to a minimum of 20°C * This renders that section of the reactor unsuitable for boiling water, however it means very high heat fuels can be used * Cold PFM is used up at a steady rate, even if the reactor is already cold +* The RBMK structural column recipe now uses only half as many metal plates, and rubber instead of insulator +* Changed the way reasim RBMK fuel channels work + * Instead of six randomized neutron streams, reasim rods now use eight half strength streams in an even star pattern + * The pattern is rotated in a random multiple of 9° (i.e. four possible angle variations) ## Fixed * Fixed NBTStack serialization omitting the stack size most of the time, preventing deserialization (mainly in the precision assembler config) @@ -53,3 +57,4 @@ * Fixed RBMK control rods incorrectly showing up in the red group when no group is set * Fixed fluid output direction being incorrect on boilers, causing them to break with pipe anchors * Fixed an issue where the industrial turbine's tendency to round up the possible operation counter would cause it to use up steam it doesn't actually have +* Fixed yet another issue with the settings tool when copying automatic control rod settings diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index db559d348..b91609144 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -510,7 +510,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(B.ingot(), 8), new OreDictStack(GRAPHITE.ingot(), 16), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(ANY_CONCRETE.any(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(GRAPHITE.ingot(), 16), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(ANY_CONCRETE.any(), 16), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT))); this.register(new GenericRecipe("ass.rbmk").setup(100, 100).outputItems(new ItemStack(ModBlocks.rbmk_blank, 1)) - .inputItems(new ComparableStack(ModBlocks.concrete_asbestos, 4), new OreDictStack(STEEL.plateCast(), 4), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4)) + .inputItems(new ComparableStack(ModBlocks.concrete_asbestos, 4), new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plate(), 4), new OreDictStack(RUBBER.ingot(), 2)) .inputItemsEx(new ComparableStack(ModBlocks.concrete_asbestos, 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.FERRO_PLATING), new OreDictStack(CU.plate(), 16)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "ferrouranium")); this.register(new GenericRecipe("ass.rbmkautoloader").setup(100, 100).outputItems(new ItemStack(ModBlocks.rbmk_autoloader, 1)) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java index c1fa028d5..dbe6e7b8d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java @@ -30,8 +30,6 @@ public class RBMKDials { KEY_SURGE_MOD("dialControlSurgeMod", 1.0), KEY_FLUX_RANGE("dialFluxRange", 5), KEY_REASIM_RANGE("dialReasimRange", 10), - KEY_REASIM_COUNT("dialReasimCount", 6), - KEY_REASIM_MOD("dialReasimOutputMod", 1.0), KEY_REASIM_BOILERS("dialReasimBoilers", false), KEY_REASIM_BOILER_SPEED("dialReasimBoilerSpeed", 0.05), KEY_DISABLE_MELTDOWNS("dialDisableMeltdowns", false), @@ -104,8 +102,6 @@ public class RBMKDials { gameRules.get(RBMKKeys.KEY_SURGE_MOD).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_SURGE_MOD, 0.0D))); gameRules.get(RBMKKeys.KEY_FLUX_RANGE).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedInt(world, RBMKKeys.KEY_FLUX_RANGE, 1, 100))); gameRules.get(RBMKKeys.KEY_REASIM_RANGE).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedInt(world, RBMKKeys.KEY_REASIM_RANGE, 1, 100))); - gameRules.get(RBMKKeys.KEY_REASIM_COUNT).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedInt(world, RBMKKeys.KEY_REASIM_COUNT, 1, 24))); - gameRules.get(RBMKKeys.KEY_REASIM_MOD).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_REASIM_MOD, 0.0D))); gameRules.get(RBMKKeys.KEY_REASIM_BOILERS).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_REASIM_BOILERS.keyString) || GeneralConfig.enable528ReasimBoilers)); gameRules.get(RBMKKeys.KEY_REASIM_BOILER_SPEED).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_REASIM_BOILER_SPEED, 0.0D, 1.0D))); gameRules.get(RBMKKeys.KEY_DISABLE_MELTDOWNS).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_DISABLE_MELTDOWNS.keyString))); @@ -287,24 +283,6 @@ public class RBMKDials { return (int) getGameRule(world, RBMKKeys.KEY_REASIM_RANGE); } - /** - * Simple integer that decides how many neutrons are created from ReaSim fuel rods. - * @param world - * @return [1;24] - */ - public static int getReaSimCount(World world) { - return (int) getGameRule(world, RBMKKeys.KEY_REASIM_COUNT); - } - - /** - * Returns a modifier for the outgoing flux of individual streams from the ReaSim fuel rod to compensate for the potentially increased stream count. - * @param world - * @return >0 - */ - public static double getReaSimOutputMod(World world) { - return (double) getGameRule(world, RBMKKeys.KEY_REASIM_MOD); - } - /** * Whether or not all components should act like boilers with dedicated in/outlet blocks * @param world diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java index 6f137ef2a..7c7a06251 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java @@ -181,7 +181,7 @@ public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements @Override public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { if(nbt.hasKey("levelLower")) levelLower = nbt.getDouble("levelLower"); - if(nbt.hasKey("levelUpper")) levelLower = nbt.getDouble("levelUpper"); + if(nbt.hasKey("levelUpper")) levelUpper = nbt.getDouble("levelUpper"); if(nbt.hasKey("heatLower")) heatLower = nbt.getDouble("heatLower"); if(nbt.hasKey("heatUpper")) heatUpper = nbt.getDouble("heatUpper"); if(nbt.hasKey("function")) function = EnumUtil.grabEnumSafely(RBMKFunction.class, nbt.getInteger("function")); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java index ef9c466b4..9ef055227 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java @@ -4,9 +4,8 @@ import com.hbm.handler.neutron.NeutronNodeWorld; import com.hbm.handler.neutron.RBMKNeutronHandler; import com.hbm.handler.neutron.NeutronNodeWorld.StreamWorld; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; - +import com.hbm.util.Vec3NT; import com.hbm.util.fauxpointtwelve.BlockPos; -import net.minecraft.util.Vec3; import static com.hbm.handler.neutron.RBMKNeutronHandler.*; @@ -26,8 +25,7 @@ public class TileEntityRBMKRodReaSim extends TileEntityRBMKRod { @Override public void spreadFlux(double flux, double ratio) { - if(pos == null) - pos = new BlockPos(this); + if(pos == null) pos = new BlockPos(this); if(flux == 0) { // simple way to remove the node from the cache when no flux is going into it! @@ -43,15 +41,11 @@ public class TileEntityRBMKRodReaSim extends TileEntityRBMKRod { streamWorld.addNode(node); } - int count = RBMKDials.getReaSimCount(worldObj); - - for(int i = 0; i < count; i++) { - Vec3 neutronVector = Vec3.createVectorHelper(1, 0, 0); - - neutronVector.rotateAroundY((float)(Math.PI * 2D * worldObj.rand.nextDouble())); - - new RBMKNeutronHandler.RBMKNeutronStream(makeNode(streamWorld, this), neutronVector, flux, ratio); - // Create new neutron streams + Vec3NT vec = new Vec3NT(1, 0, 0); + vec.rotateAroundYDeg(worldObj.rand.nextInt(4) * 9D); + for(int i = 0; i < 8; i++) { + new RBMKNeutronHandler.RBMKNeutronStream(node, vec, flux * 0.5, ratio); + vec.rotateAroundYDeg(45D); } }