У меня от сажи уже голова болит

This commit is contained in:
TheVitya2127 2026-07-20 09:55:52 +04:00
parent 4064efd028
commit b1a00f98a6
14 changed files with 116 additions and 50 deletions

View File

@ -194,7 +194,7 @@ public class Fluids {
public static FluidType CONCRETE;
public static FluidType DHC;
/* Lagacy names for compatibility purposes */
/* Legacy names for compatibility purposes */
@Deprecated public static FluidType ACID; //JAOPCA uses this, apparently
public static final HashBiMap<String, FluidType> renameMapping = HashBiMap.create();

View File

@ -6,6 +6,7 @@ import java.util.List;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.util.BobMathUtil;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.util.EnumChatFormatting;
@ -25,11 +26,11 @@ public class FT_Combustible extends FluidTrait {
public void addInfo(List<String> info) {
super.addInfo(info);
info.add(EnumChatFormatting.GOLD + "[Combustible]");
info.add(EnumChatFormatting.GOLD + "[" + I18nUtil.resolveKey("hbmfluid.trait.combustible") + "]");
if(combustionEnergy > 0) {
info.add(EnumChatFormatting.GOLD + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + "per bucket");
info.add(EnumChatFormatting.GOLD + "Fuel grade: " + EnumChatFormatting.RED + this.fuelGrade.getGrade());
info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("hbmfluid.trait.provides") + " " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + I18nUtil.resolveKey("hbmfluid.trait.perBucket"));
info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("hbmfluid.trait.fuelGrade") + ": " + EnumChatFormatting.RED + this.fuelGrade.getGrade());
}
}
@ -42,11 +43,11 @@ public class FT_Combustible extends FluidTrait {
}
public static enum FuelGrade {
LOW("Low"), //heating and industrial oil < star engine, iGen
MEDIUM("Medium"), //petroil < diesel generator
HIGH("High"), //diesel, gasoline < HP engine
AERO("Aviation"), //kerosene and other light aviation fuels < turbofan
GAS("Gaseous"); //fuel gasses like NG, PG and syngas < gas turbine
LOW(I18nUtil.resolveKey("hbmfluid.trait.fuel.low")), //heating and industrial oil < star engine, iGen
MEDIUM(I18nUtil.resolveKey("hbmfluid.trait.fuel.medium")), //petroil < diesel generator
HIGH(I18nUtil.resolveKey("hbmfluid.trait.fuel.high")), //diesel, gasoline < HP engine
AERO(I18nUtil.resolveKey("hbmfluid.trait.fuel.aviation")), //kerosene and other light aviation fuels < turbofan
GAS(I18nUtil.resolveKey("hbmfluid.trait.fuel.gaseous")); //fuel gasses like NG, PG and syngas < gas turbine
private String grade;

View File

@ -9,6 +9,7 @@ import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.util.EnumChatFormatting;
@ -42,20 +43,20 @@ public class FT_Coolable extends FluidTrait {
@Override
public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.RED + "Thermal capacity: " + heatEnergy + " TU per " + amountReq + "mB");
info.add(EnumChatFormatting.RED + I18nUtil.resolveKey("hbmfluid.trait.thermalCapacity") + ": " + heatEnergy + " " + I18nUtil.resolveKey("hbmfluid.trait.perTU") + " " + amountReq + "mB");
for(CoolingType type : CoolingType.values()) {
double eff = getEfficiency(type);
if(eff > 0) {
info.add(EnumChatFormatting.YELLOW + "[" + type.name + "] " + EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%");
info.add(EnumChatFormatting.YELLOW + "[" + type.name + "] " + EnumChatFormatting.AQUA + I18nUtil.resolveKey("hbmfluid.trait.efficiency") + ": " + ((int) (eff * 100D)) + "%");
}
}
}
public static enum CoolingType {
TURBINE("Turbine Steam"),
HEATEXCHANGER("Coolable");
TURBINE(I18nUtil.resolveKey("hbmfluid.trait.steam")),
HEATEXCHANGER(I18nUtil.resolveKey("hbmfluid.trait.coolable"));
public String name;

View File

@ -6,6 +6,8 @@ import java.util.List;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.util.EnumChatFormatting;
public class FT_Corrosive extends FluidTrait {
@ -31,9 +33,9 @@ public class FT_Corrosive extends FluidTrait {
public void addInfo(List<String> info) {
if(isHighlyCorrosive())
info.add(EnumChatFormatting.GOLD + "[Strongly Corrosive]");
info.add(EnumChatFormatting.GOLD + "[" + I18nUtil.resolveKey("hbmfluid.trait.corrosiveStrong") + "]");
else
info.add(EnumChatFormatting.YELLOW + "[Corrosive]");
info.add(EnumChatFormatting.YELLOW + "[" + I18nUtil.resolveKey("hbmfluid.trait.corrosive") + "]");
}
@Override

View File

@ -6,6 +6,7 @@ import java.util.List;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.util.BobMathUtil;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.util.EnumChatFormatting;
@ -28,10 +29,10 @@ public class FT_Flammable extends FluidTrait {
public void addInfo(List<String> info) {
super.addInfo(info);
info.add(EnumChatFormatting.YELLOW + "[Flammable]");
info.add(EnumChatFormatting.YELLOW + "[" + I18nUtil.resolveKey("hbmfluid.trait.flammable") + "]");
if(energy > 0)
info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "TU " + EnumChatFormatting.YELLOW + "per bucket");
info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hbmfluid.trait.provides") + " " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "TU " + EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hbmfluid.trait.perBucket"));
}
@Override

View File

@ -5,6 +5,7 @@ import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.util.EnumChatFormatting;
@ -42,13 +43,13 @@ public class FT_Heatable extends FluidTrait {
@Override
public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.RED + "Thermal capacity: " + this.getFirstStep().heatReq + " TU per " + this.getFirstStep().amountReq + "mB");
info.add(EnumChatFormatting.RED + I18nUtil.resolveKey("hbmfluid.trait.thermalCapacity") + ": " + this.getFirstStep().heatReq + " " + I18nUtil.resolveKey("hbmfluid.trait.perTU") + " " + this.getFirstStep().amountReq + "mB");
for(HeatingType type : HeatingType.values()) {
double eff = getEfficiency(type);
if(eff > 0) {
info.add(EnumChatFormatting.YELLOW + "[" + type.name + "] " + EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%");
info.add(EnumChatFormatting.YELLOW + "[" + type.name + "] " + EnumChatFormatting.AQUA + I18nUtil.resolveKey("hbmfluid.trait.efficiency") + ": " + ((int) (eff * 100D)) + "%");
}
}
}
@ -68,11 +69,11 @@ public class FT_Heatable extends FluidTrait {
}
public static enum HeatingType {
BOILER("Boilable"),
HEATEXCHANGER("Heatable"),
PWR("PWR Coolant"),
ICF("ICF Coolant"),
PA("Particle Accelerator Coolant");
BOILER(I18nUtil.resolveKey("hbmfluid.trait.boilable")),
HEATEXCHANGER(I18nUtil.resolveKey("hbmfluid.trait.heatable")),
PWR(I18nUtil.resolveKey("hbmfluid.trait.coolantPWR")),
ICF(I18nUtil.resolveKey("hbmfluid.trait.coolantICF")),
PA(I18nUtil.resolveKey("hbmfluid.trait.coolantPA"));
public String name;

View File

@ -6,6 +6,8 @@ import java.util.List;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.util.EnumChatFormatting;
public class FT_PWRModerator extends FluidTrait {
@ -22,13 +24,13 @@ public class FT_PWRModerator extends FluidTrait {
@Override
public void addInfo(List<String> info) {
info.add(EnumChatFormatting.BLUE + "[PWR Flux Multiplier]");
info.add(EnumChatFormatting.BLUE + "[" + I18nUtil.resolveKey("hbmfluid.trait.pwrFluxMultiplier") + "]");
}
@Override
public void addInfoHidden(List<String> info) {
int mult = (int) (multiplier * 100 - 100);
info.add(EnumChatFormatting.BLUE + "Core flux " + (mult >= 0 ? "+" : "") + mult + "%");
info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.trait.pwrFluxCore") + " " + (mult >= 0 ? "+" : "") + mult + "%");
}
@Override

View File

@ -4,6 +4,7 @@ import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import net.minecraft.util.EnumChatFormatting;
import com.hbm.util.i18n.I18nUtil;
import java.io.IOException;
import java.util.List;
@ -25,9 +26,9 @@ public class FT_Pheromone extends FluidTrait{
public void addInfo(List<String> info) {
if(type == 1) {
info.add(EnumChatFormatting.AQUA + "[Glyphid Pheromones]");
info.add(EnumChatFormatting.AQUA + "[" + I18nUtil.resolveKey("hbmfluid.trait.glyphidPheromones") + "]");
} else {
info.add(EnumChatFormatting.BLUE + "[Modified Pheromones]");
info.add(EnumChatFormatting.BLUE + "[" + I18nUtil.resolveKey("hbmfluid.trait.modifiedPheromones") + "]");
}
}

View File

@ -4,6 +4,7 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Locale;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
@ -11,9 +12,11 @@ import com.hbm.handler.pollution.PollutionHandler;
import com.hbm.handler.pollution.PollutionHandler.PollutionType;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraft.util.StatCollector;
public class FT_Polluting extends FluidTrait {
@ -33,20 +36,20 @@ public class FT_Polluting extends FluidTrait {
@Override
public void addInfo(List<String> info) {
info.add(EnumChatFormatting.GOLD + "[Polluting]");
info.add(EnumChatFormatting.GOLD + "[" + I18nUtil.resolveKey("hbmfluid.trait.polluting") + "]");
}
@Override
public void addInfoHidden(List<String> info) {
if(!this.releaseMap.isEmpty()) {
info.add(EnumChatFormatting.GREEN + "When spilled:");
for(Entry<PollutionType, Float> entry : releaseMap.entrySet()) info.add(EnumChatFormatting.GREEN + " - " + entry.getValue() + " " + entry.getKey() + " per mB");
info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("hbmfluid.trait.spilled") + ":");
for(Entry<PollutionType, Float> entry : releaseMap.entrySet()) info.add(EnumChatFormatting.GREEN + " - " + entry.getValue() + " " + StatCollector.translateToLocal("pollution.trait." + entry.getKey().name().toLowerCase(Locale.US)) + " " + I18nUtil.resolveKey("hbmfluid.trait.perMB"));
}
if(!this.burnMap.isEmpty()) {
info.add(EnumChatFormatting.RED + "When burned:");
for(Entry<PollutionType, Float> entry : burnMap.entrySet()) info.add(EnumChatFormatting.RED + " - " + entry.getValue() + " " + entry.getKey() + " per mB");
info.add(EnumChatFormatting.RED + I18nUtil.resolveKey("hbmfluid.trait.burned") + ":");
for(Entry<PollutionType, Float> entry : burnMap.entrySet()) info.add(EnumChatFormatting.RED + " - " + entry.getValue() + " " + StatCollector.translateToLocal("pollution.trait." + entry.getKey().name().toLowerCase(Locale.US)) + " " + I18nUtil.resolveKey("hbmfluid.trait.perMB"));
}
}

View File

@ -31,7 +31,7 @@ public class FT_Toxin extends FluidTrait {
@Override
public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.LIGHT_PURPLE + "[Toxin]");
info.add(EnumChatFormatting.LIGHT_PURPLE + "[" + I18nUtil.resolveKey("hbmfluid.trait.toxin") + "]");
for(ToxinEntry entry : entries) {
entry.addInfo(info);
@ -101,7 +101,7 @@ public class FT_Toxin extends FluidTrait {
@Override
public void addInfo(List<String> info) {
info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" : "") + ": " + EnumChatFormatting.YELLOW + String.format(Locale.US, "%,.1f", amount * 20 / delay) + " DPS");
info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (" + I18nUtil.resolveKey("hbmfluid.trait.hazmat") + ")" : "") + ": " + EnumChatFormatting.YELLOW + String.format(Locale.US, "%,.1f", amount * 20 / delay) + " " + I18nUtil.resolveKey("hbmfluid.trait.perDamage"));
}
}
@ -130,7 +130,7 @@ public class FT_Toxin extends FluidTrait {
@Override
public void addInfo(List<String> info) {
info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" + EnumChatFormatting.YELLOW : "") + ":");
info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (" + I18nUtil.resolveKey("hbmfluid.trait.hazmat") + ")" + EnumChatFormatting.YELLOW : "") + ":");
for(PotionEffect eff : effects) {
info.add(EnumChatFormatting.YELLOW + " - " + I18nUtil.resolveKey(eff.getEffectName()) + (eff.getAmplifier() > 0 ? " " + StatCollector.translateToLocal("potion.potency." + eff.getAmplifier()).trim() : "") + " " + StringUtils.ticksToElapsedTime(eff.getDuration()));

View File

@ -7,6 +7,7 @@ import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
@ -32,7 +33,7 @@ public class FT_VentRadiation extends FluidTrait {
@Override
public void addInfo(List<String> info) {
info.add(EnumChatFormatting.YELLOW + "[Radioactive]");
info.add(EnumChatFormatting.YELLOW + "[" + I18nUtil.resolveKey("hbmfluid.trait.radioactive") + "]");
}
@Override

View File

@ -2,37 +2,38 @@ package com.hbm.inventory.fluid.trait;
import java.util.List;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.util.EnumChatFormatting;
public class FluidTraitSimple {
public static class FT_Gaseous extends FluidTrait {
@Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.BLUE + "[Gaseous]");
info.add(EnumChatFormatting.BLUE + "[" + I18nUtil.resolveKey("hbmfluid.trait.gaseous") + "]");
}
}
/** gaseous at room temperature, for cryogenic hydrogen for example */
public static class FT_Gaseous_ART extends FluidTrait {
@Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.BLUE + "[Gaseous at Room Temperature]");
info.add(EnumChatFormatting.BLUE + "[" + I18nUtil.resolveKey("hbmfluid.trait.gaseousRoom") + "]");
}
}
public static class FT_Liquid extends FluidTrait {
@Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.BLUE + "[Liquid]");
info.add(EnumChatFormatting.BLUE + "[" + I18nUtil.resolveKey("hbmfluid.trait.liquid") + "]");
}
}
/** to viscous to be sprayed/turned into a mist */
public static class FT_Viscous extends FluidTrait {
@Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.BLUE + "[Viscous]");
info.add(EnumChatFormatting.BLUE + "[" + I18nUtil.resolveKey("hbmfluid.trait.viscous") + "]");
}
}
public static class FT_Plasma extends FluidTrait {
@Deprecated public static class FT_Plasma extends FluidTrait {
@Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.LIGHT_PURPLE + "[Plasma]");
}
@ -40,25 +41,25 @@ public class FluidTraitSimple {
public static class FT_Amat extends FluidTrait {
@Override public void addInfo(List<String> info) {
info.add(EnumChatFormatting.DARK_RED + "[Antimatter]");
info.add(EnumChatFormatting.DARK_RED + "[" + I18nUtil.resolveKey("hbmfluid.trait.antimatter") + "]");
}
}
public static class FT_LeadContainer extends FluidTrait {
@Override public void addInfo(List<String> info) {
info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]");
info.add(EnumChatFormatting.DARK_RED + "[" + I18nUtil.resolveKey("hbmfluid.trait.leadContainer") + "]");
}
}
public static class FT_Delicious extends FluidTrait {
@Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]");
info.add(EnumChatFormatting.DARK_GREEN + "[" + I18nUtil.resolveKey("hbmfluid.trait.delicious") + "]");
}
}
public static class FT_Unsiphonable extends FluidTrait {
@Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.BLUE + "[Ignored by siphon]");
info.add(EnumChatFormatting.BLUE + "[" + I18nUtil.resolveKey("hbmfluid.trait.unsiphonable") + "]");
}
}

View File

@ -6,6 +6,7 @@ import com.hbm.handler.pollution.PollutionHandler.PollutionType;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toclient.PlayerInformPacket;
import com.hbm.util.ChatBuilder;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayerMP;
@ -34,9 +35,9 @@ public class ItemPollutionDetector extends Item {
heavymetal = ((int) (heavymetal * 100)) / 100F;
//fallout = ((int) (fallout * 100)) / 100F;
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start(I18nUtil.resolveKey("pollution.soot") + ": " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start(I18nUtil.resolveKey("pollution.poison") + ": " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start(I18nUtil.resolveKey("pollution.heavymetal") + ": " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 4000), (EntityPlayerMP) entity);
//PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity);
}
}

View File

@ -6392,6 +6392,57 @@ tile.round_airlock_door.name=Round Airlock Door
tile.secure_access_door.name=Secure Access Door
tile.sliding_seal_door.name=Sliding Seal Door
hbmfluid.trait.antimatter=Antimatter
hbmfluid.trait.boilable=Boilable
hbmfluid.trait.burned=When burned
hbmfluid.trait.combustible=Combustible
hbmfluid.trait.coolable=Coolable
hbmfluid.trait.coolantICF=ICF Coolant
hbmfluid.trait.coolantPA=Particle Accelerator Coolant
hbmfluid.trait.coolantPWR=PWR Coolant
hbmfluid.trait.corrosive=Corrosive
hbmfluid.trait.corrosiveStrong=Strongly Corrosive
hbmfluid.trait.delicious=Delicious
hbmfluid.trait.efficiency=Efficiency
hbmfluid.trait.flammable=Flammable
hbmfluid.trait.fuel.aviation=Aviation
hbmfluid.trait.fuel.gaseous=Gaseous
hbmfluid.trait.fuel.high=High
hbmfluid.trait.fuel.low=Low
hbmfluid.trait.fuel.medium=Medium
hbmfluid.trait.fuelGrade=Fuel grade
hbmfluid.trait.gaseous=Gaseous
hbmfluid.trait.gaseousRoom=Gaseous at Room Temperature
hbmfluid.trait.glyphidPheromones=Glyphid Pheromones
hbmfluid.trait.hazmat=requires hazmat suit
hbmfluid.trait.heatable=Heatable
hbmfluid.trait.leadContainer=Requires hazardous material tank to hold
hbmfluid.trait.liquid=Liquid
hbmfluid.trait.modifiedPheromones=Modified Pheromones
hbmfluid.trait.perBucket=per bucket
hbmfluid.trait.perDamage=DPS
hbmfluid.trait.perMB=per mB
hbmfluid.trait.perTU=TU per
hbmfluid.trait.polluting=Polluting
hbmfluid.trait.provides=Provides
hbmfluid.trait.pwrFluxCore=Core flux
hbmfluid.trait.pwrFluxMultiplier=PWR Flux Multiplier
hbmfluid.trait.radioactive=Radioactive
hbmfluid.trait.spilled=When spilled
hbmfluid.trait.steam=Turbine Steam
hbmfluid.trait.thermalCapacity=Thermal capacity
hbmfluid.trait.toxin=Toxin
hbmfluid.trait.unsiphonable=Ignored by siphon
hbmfluid.trait.viscous=Viscous
pollution.soot=Soot
pollution.poison=Poison
pollution.heavymetal=Heavy metal
pollution.trait.soot=SOOT
pollution.trait.poison=POISON
pollution.trait.heavymetal=HEAVY METAL
trait.asbestos=Asbestos
trait.blinding=Blinding
trait.coal=Coal Dust