mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge branch 'HbmMods:master' into master
This commit is contained in:
commit
c7f5a14e42
@ -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
|
||||
|
||||
@ -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),\
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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; }
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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) };
|
||||
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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."
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user