Merge branch 'HbmMods:master' into master

This commit is contained in:
Raaaaaaaaaay 2025-11-24 14:46:34 +02:00 committed by GitHub
commit c7f5a14e42
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 74 additions and 7382 deletions

View File

@ -72,6 +72,7 @@
* The mining laser can now be stopped by applying a redstone signal to one of the ports
* Ionized particles can no longer be liquefacted into helium-4, helium is now a direct liquid byproduct of several fusion reactor recipes
* Adjusted schrabidic acid recipe to account for higher ionized particle yield
* Increases the ICF's stellar flux output by a factor of four
## Fixed
* Fixed arc furnace only allowing electrodes to be inserted when the lid is down instead of up

View File

@ -1,6 +1,6 @@
mod_version=1.0.27
# Empty build number makes a release type
mod_build_number=5491
mod_build_number=5523
credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\

View File

@ -902,15 +902,15 @@ public class ModBlocks {
public static Block pwr_controller;
public static Block pwr_block;
public static Block fusion_conductor;
public static Block fusion_center;
public static Block fusion_motor;
public static Block fusion_heater;
public static Block fusion_hatch;
public static Block plasma;
@Deprecated public static Block fusion_conductor;
@Deprecated public static Block fusion_center;
@Deprecated public static Block fusion_motor;
@Deprecated public static Block fusion_heater;
@Deprecated public static Block fusion_hatch;
@Deprecated public static Block plasma; // only actually used by the old plasma grenade, will die with the grenade rework
public static Block iter;
public static Block plasma_heater;
@Deprecated public static Block iter;
@Deprecated public static Block plasma_heater;
public static Block fusion_component;
public static Block fusion_torus;

View File

@ -10,49 +10,33 @@ import net.minecraft.item.Item;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
@Deprecated
public class BlockPlasma extends Block {
public BlockPlasma(Material p_i45394_1_) {
super(p_i45394_1_);
this.setTickRandomly(true);
this.setTickRandomly(true);
}
@Override
public void updateTick(World world, int x, int y, int z, Random rand)
{
if (world.getGameRules().getGameRuleBooleanValue("doFireTick"))
world.setBlock(x, y, z, Blocks.air);
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_)
{
return null;
}
@Override
public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity p_149670_5_)
{
p_149670_5_.setFire(10);
p_149670_5_.setInWeb();
}
@Override
public boolean isOpaqueCube()
{
return false;
}
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
{
public void updateTick(World world, int x, int y, int z, Random rand) {
if(world.getGameRules().getGameRuleBooleanValue("doFireTick"))
world.setBlock(x, y, z, Blocks.air);
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) {
return null;
}
@Override
public boolean renderAsNormalBlock()
{
return false;
}
}
@Override
public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity p_149670_5_) {
p_149670_5_.setFire(10);
p_149670_5_.setInWeb();
}
@Override public boolean isOpaqueCube() { return false; }
@Override public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { return null; }
@Override public boolean renderAsNormalBlock() { return false; }
}

View File

@ -83,18 +83,22 @@ public class MachineFusionMHDT extends BlockDummyable implements ILookOverlay, I
if(!(te instanceof TileEntityFusionMHDT)) return;
TileEntityFusionMHDT turbine = (TileEntityFusionMHDT) te;
boolean hasPlasma = turbine.hasMinimumPlasma();
boolean isCool = turbine.isCool();
long power = (long) Math.floor(turbine.plasmaEnergy * turbine.PLASMA_EFFICIENCY);
if(!hasPlasma) power /= 2;
List<String> text = new ArrayList();
text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(turbine.plasmaEnergy) + " TU/t");
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(!isCool ? 0 : (long) Math.floor(turbine.plasmaEnergy * turbine.PLASMA_EFFICIENCY)) + "HE/t");
text.add(EnumChatFormatting.GREEN + "-> " + (hasPlasma ? EnumChatFormatting.RESET : EnumChatFormatting.GOLD) + BobMathUtil.getShortNumber(turbine.plasmaEnergy) + "TU/t / " + BobMathUtil.getShortNumber(turbine.MINIMUM_PLASMA) + "TU/t");
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(!isCool ? 0 : power) + "HE/t");
for(int i = 0; i < turbine.getAllTanks().length; i++) {
FluidTank tank = turbine.getAllTanks()[i];
text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tank.getTankType().getLocalizedName() + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB");
}
if(turbine.plasmaEnergy > 0 && !hasPlasma) text.add("&[" + (BobMathUtil.getBlink() ? 0xff8000 : 0xffff00) + "&]! LOW POWER !");
if(!isCool) text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! INSUFFICIENT COOLING ! ! !");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);

View File

@ -104,13 +104,15 @@ public class ConstructionHandler extends NEIUniversalHandler {
bufferedTools.put(soysauce, new ItemStack(ModBlocks.struct_soyuz_core));
/* ICF */
ItemStack[] icf = new ItemStack[] {
Object[] icf = new Object[] {
new ItemStack(ModBlocks.icf_component, 50, 0),
ItemStackUtil.addStackSizeLabel(new ItemStack(ModBlocks.icf_component, 240, 3)),
ItemStackUtil.addStackSizeLabel(Mats.MAT_DURA.make(ModItems.bolt, 960)),
ItemStackUtil.addStackSizeLabel(Mats.MAT_STEEL.make(ModItems.plate_cast, 240)),
ItemStackUtil.addStackSizeLabel(new ItemStack(ModBlocks.icf_component, 117, 1)),
ItemStackUtil.addStackSizeLabel(Mats.MAT_BBRONZE.make(ModItems.plate_cast, 117)),
new ItemStack[] {
ItemStackUtil.addStackSizeLabel(Mats.MAT_BBRONZE.make(ModItems.plate_cast, 117)),
ItemStackUtil.addStackSizeLabel(Mats.MAT_ABRONZE.make(ModItems.plate_cast, 117))},
new ItemStack(ModItems.blowtorch),
new ItemStack(ModItems.boltgun) };

View File

@ -570,8 +570,8 @@ public class AnvilRecipes extends SerializableRecipe {
}
for(int i = 0; i < 5; i++) {
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(MINGRADE.ingot(), 8), new ComparableStack(ModItems.plate_polymer)}, new AnvilOutput(new ItemStack(ModBlocks.red_cable_box, 8, i))).setTier(2).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.red_cable_box, 8, i), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 8)), new AnvilOutput(new ItemStack(ModItems.plate_polymer))}).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(MINGRADE.ingot(), 1), new ComparableStack(ModItems.plate_polymer)}, new AnvilOutput(new ItemStack(ModBlocks.red_cable_box, 16, i))).setTier(2).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.red_cable_box, 16, i), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 1)), new AnvilOutput(new ItemStack(ModItems.plate_polymer))}).setTier(2));
}
}

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings {
public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (5491)";
public static final String VERSION = "1.0.27 BETA (5523)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version

View File

@ -112,7 +112,7 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider
markDirty = true;
}
tanks[2].setFill(tanks[2].getFill() + (int) Math.ceil(this.heat * 2.5D / this.maxHeat));
tanks[2].setFill(tanks[2].getFill() + (int) Math.ceil(this.heat * 10D / this.maxHeat));
if(tanks[2].getFill() > tanks[2].getMaxFill()) tanks[2].setFill(tanks[2].getMaxFill());
NBTTagCompound dPart = new NBTTagCompound();

View File

@ -1,9 +1,14 @@
package com.hbm.tileentity.machine.fusion;
import java.io.IOException;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.uninos.GenNode;
import com.hbm.uninos.UniNodespace;
@ -21,7 +26,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiverMK2, IFusionPowerReceiver {
public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiverMK2, IFusionPowerReceiver, IConfigurableMachine {
protected GenNode plasmaNode;
@ -36,10 +41,14 @@ public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnerg
public static final double PLASMA_EFFICIENCY = 1.35D;
public static final int COOLANT_USE = 50;
public static long MINIMUM_PLASMA = 5_000_000L;
public FluidTank[] tanks;
private AudioWrapper audio;
@Override public String getConfigName() { return "mhd-turbine"; }
@Override public void readIfPresent(JsonObject obj) { MINIMUM_PLASMA = IConfigurableMachine.grab(obj, "L:minimumPlasma", MINIMUM_PLASMA); }
@Override public void writeConfig(JsonWriter writer) throws IOException { writer.name("L:minimumPlasma").value(MINIMUM_PLASMA); }
public TileEntityFusionMHDT() {
this.tanks = new FluidTank[2];
@ -47,6 +56,10 @@ public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnerg
this.tanks[1] = new FluidTank(Fluids.PERFLUOROMETHYL, 4_000);
}
public boolean hasMinimumPlasma() {
return this.plasmaEnergy >= MINIMUM_PLASMA;
}
@Override
public void updateEntity() {
@ -56,6 +69,7 @@ public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnerg
if(isCool()) {
this.power = (long) Math.floor(this.plasmaEnergy * PLASMA_EFFICIENCY);
if(!this.hasMinimumPlasma()) this.power /= 2;
tanks[0].setFill(tanks[0].getFill() - COOLANT_USE);
tanks[1].setFill(tanks[1].getFill() + COOLANT_USE);
}
@ -89,7 +103,7 @@ public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnerg
if(this.plasmaEnergy > 0 && isCool()) this.rotorSpeed += ROTOR_ACCELERATION;
else this.rotorSpeed -= ROTOR_ACCELERATION;
this.rotorSpeed = MathHelper.clamp_float(this.rotorSpeed, 0F, 15F);
this.rotorSpeed = MathHelper.clamp_float(this.rotorSpeed, 0F, hasMinimumPlasma() ? 15F : 10F);
this.prevRotor = this.rotor;
this.rotor += this.rotorSpeed;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4303,6 +4303,10 @@ tile.fusion_breeder.desc=Verwendet Neutronenflux von einem$Fusionsreaktor um Mat
tile.fusion_center.name=Zentralmagnetstück
tile.fusion_collector.name=Fusionsreaktor-Kollektor
tile.fusion_collector.desc=Erhöht Nebenprodukt-Produktion$von einem Fusionsreaktor.
tile.fusion_component.name=Supraleitende BSCCO-Spule
tile.fusion_component.blanket.name=Fusionsreaktor-Blanket
tile.fusion_component.bscco_welded.name=Verschweißte BSCCO-Spule
tile.fusion_component.motor.name=Fusionsreaktor-Verrohrung
tile.fusion_conductor.name=Supraleiter-Magnet
tile.fusion_conductor_welded.name=Supraleiter-Magnet (Verschweißt)
tile.fusion_core.name=Fusionsreaktorsteuerung
@ -4952,6 +4956,7 @@ tile.struct_launcher_core_large.name=Startrampe-Kernkomponente
tile.struct_plasma_core.name=Plasmaerhitzer-Kernkomponente
tile.struct_scaffold.name=Startrampe-Gerüstblock
tile.struct_soyuz_core.name=Soyuz-Startrampe-Kernkomponente
tile.struct_torus_core.name=Fusionsreaktor-Plasmagefäß-Kernkomponente
tile.struct_watz_core.name=Watzkraftwerk-Kernkomponente
tile.substation.name=Umspannwerk
tile.sulfuric_acid_block.name=Schwefelsäure

View File

@ -5558,6 +5558,10 @@ tile.fusion_breeder.desc=Uses output neutron flux from$a fusion reactor to proce
tile.fusion_center.name=Central Magnet Piece
tile.fusion_collector.name=Fusion Reactor Collector Chamber
tile.fusion_collector.desc=Can be connected to the main vessel$to increase byproduct yield.
tile.fusion_component.name=Superconducting BSCCO Coils
tile.fusion_component.blanket.name=Fusion Reactor Blanket
tile.fusion_component.bscco_welded.name=Welded BSCCO Coils
tile.fusion_component.motor.name=Fusion Reactor Piping
tile.fusion_conductor.name=Superconducting Magnet
tile.fusion_conductor_welded.name=Superconducting Magnet (Welded)
tile.fusion_core.name=Fusion Reactor Control
@ -6288,6 +6292,7 @@ tile.struct_launcher_core_large.name=Launch Table Core Component
tile.struct_plasma_core.name=Plasma Heater Core Component
tile.struct_scaffold.name=Launch Pad Scaffold Block
tile.struct_soyuz_core.name=Soyuz Launcher Core Component
tile.struct_torus_core.name=Fusion Reactor Vessel Core Component
tile.struct_watz_core.name=Watz Powerplant Core Component
tile.substation.name=Substation
tile.sulfuric_acid_block.name=Sulfuric Acid

View File

@ -6,6 +6,6 @@
"en_US": "MHD Turbine"
},
"content": {
"en_US": "Magnetohydrodynamic turbines are advanced components of the [[fusion reactor|Fusion Reactor]] that make electric energy out of plasma energy directly without needing steam or turbines, as a [[boiler|Fusion Reactor Boiler]] would. While more expensive and requiring [[perfluoromethyl|Perfluoromethyl]] cooling, they do have an innate +35% conversion bonus from TU to HE.<br><br>Due to using plasma energy, MHDTs are affected by port sharing rules, meaning that having multiple connected MHDTs (or boilers) decreases the amount of energy each turbine gets, but overall increases the total amount extracted from the torus.<br><br>MHDTs do in fact not have any moving parts, instead the large rotating copper wheel is part of its cooling system. Ya dweeb."
"en_US": "Magnetohydrodynamic turbines are advanced components of the [[fusion reactor|Fusion Reactor]] that make electric energy out of plasma energy directly without needing steam or turbines, as a [[boiler|Fusion Reactor Boiler]] would. While more expensive and requiring [[perfluoromethyl|Perfluoromethyl]] cooling, they do have an innate +35% conversion bonus from TU to HE. In addition, the MHD turbine requires a minimum input of 5MTU/t of plasma energy to operate normally, otherwise efficiency will be halved.<br><br>Due to using plasma energy, MHDTs are affected by port sharing rules, meaning that having multiple connected MHDTs (or boilers) decreases the amount of energy each turbine gets, but overall increases the total amount extracted from the torus.<br><br>MHDTs do in fact not have any moving parts, instead the large rotating copper wheel is part of its cooling system. Ya dweeb."
}
}