i'm commitmaxxing af

This commit is contained in:
Boblet 2026-03-06 14:40:15 +01:00
parent 10613f22de
commit 83a0f84b11
5 changed files with 14 additions and 37 deletions

View File

@ -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

View File

@ -510,7 +510,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.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))

View File

@ -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

View File

@ -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"));

View File

@ -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);
}
}