mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
rewrote the entire fluid trait system
ow
This commit is contained in:
parent
5fc6db11fc
commit
ea16e518dc
@ -5,7 +5,7 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineDiesel;
|
||||
|
||||
@ -5,7 +5,7 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine;
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.handler.MultiblockHandler;
|
||||
import com.hbm.interfaces.IMultiblock;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
|
||||
@ -2,14 +2,23 @@ package com.hbm.inventory.fluid;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.trait.*;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.*;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
@ -37,6 +46,7 @@ public class FluidType {
|
||||
public static final double DEFAULT_HEATCAP = 0.01D;
|
||||
public static final double DEFAULT_COMPRESSION = 1D;
|
||||
|
||||
// v v v this entire system is a pain in the ass to work with. i'd much rather define state transitions and heat values manually.
|
||||
/** How hot this fluid is. Simple enough. */
|
||||
public int temperature = ROOM_TEMPERATURE;
|
||||
/** How much heat energy each mB requires to be heated by 1°C. Total heat energy = heatCap * delta-T. */
|
||||
@ -45,7 +55,8 @@ public class FluidType {
|
||||
public double compression = DEFAULT_COMPRESSION;
|
||||
|
||||
public Set<ExtContainer> containers = new HashSet();
|
||||
public List<FluidTrait> traits = new ArrayList();
|
||||
private HashMap<Class<? extends FluidTrait>, FluidTrait> traits = new HashMap();
|
||||
//public List<EnumFluidTrait> enumTraits = new ArrayList();
|
||||
|
||||
private ResourceLocation texture;
|
||||
|
||||
@ -91,9 +102,22 @@ public class FluidType {
|
||||
return this;
|
||||
}
|
||||
|
||||
public FluidType addTraits(FluidTrait... traits) {
|
||||
Collections.addAll(this.traits, traits);
|
||||
/*public FluidType addTraits(EnumFluidTrait... traits) {
|
||||
Collections.addAll(this.enumTraits, traits);
|
||||
return this;
|
||||
}*/
|
||||
|
||||
public FluidType addTraits(FluidTrait... traits) {
|
||||
for(FluidTrait trait : traits) this.traits.put(trait.getClass(), trait);
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean hasTrait(Class<? extends FluidTrait> trait) {
|
||||
return this.traits.containsKey(trait);
|
||||
}
|
||||
|
||||
public <T extends FluidTrait> T getTrait(Class<? extends T> trait) { //generics, yeah!
|
||||
return (T) this.traits.get(trait);
|
||||
}
|
||||
|
||||
public int getID() {
|
||||
@ -125,19 +149,19 @@ public class FluidType {
|
||||
return this.temperature >= 100;
|
||||
}
|
||||
public boolean isCorrosive() {
|
||||
return this.traits.contains(FluidTrait.CORROSIVE) || this.traits.contains(FluidTrait.CORROSIVE_2);
|
||||
return this.traits.containsKey(FT_Corrosive.class);
|
||||
}
|
||||
public boolean isAntimatter() {
|
||||
return this.traits.contains(FluidTrait.AMAT);
|
||||
return this.traits.containsKey(FT_Amat.class);
|
||||
}
|
||||
public boolean hasNoContainer() {
|
||||
return this.traits.contains(FluidTrait.NO_CONTAINER);
|
||||
return this.traits.containsKey(FT_NoContainer.class);
|
||||
}
|
||||
public boolean hasNoID() {
|
||||
return this.traits.contains(FluidTrait.NO_ID);
|
||||
return this.traits.containsKey(FT_NoID.class);
|
||||
}
|
||||
public boolean needsLeadContainer() {
|
||||
return this.traits.contains(FluidTrait.LEAD_CONTAINER);
|
||||
return this.traits.containsKey(FT_LeadContainer.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -165,19 +189,39 @@ public class FluidType {
|
||||
public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { }
|
||||
//public void onFluidTransmit(FluidNetwork net) { }
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void addInfo(List<String> info) {
|
||||
|
||||
if(temperature != ROOM_TEMPERATURE) {
|
||||
if(temperature < 0) info.add(EnumChatFormatting.BLUE + "" + temperature + "°C");
|
||||
if(temperature > 0) info.add(EnumChatFormatting.RED + "" + temperature + "°C");
|
||||
}
|
||||
if(isAntimatter()) info.add(EnumChatFormatting.DARK_RED + "Antimatter");
|
||||
/*if(isAntimatter()) info.add(EnumChatFormatting.DARK_RED + "Antimatter");
|
||||
|
||||
if(traits.contains(FluidTrait.CORROSIVE_2)) info.add(EnumChatFormatting.GOLD + "Strongly Corrosive");
|
||||
else if(traits.contains(FluidTrait.CORROSIVE)) info.add(EnumChatFormatting.YELLOW + "Corrosive");
|
||||
if(enumTraits.contains(EnumFluidTrait.CORROSIVE_2)) info.add(EnumChatFormatting.GOLD + "Strongly Corrosive");
|
||||
else if(enumTraits.contains(EnumFluidTrait.CORROSIVE)) info.add(EnumChatFormatting.YELLOW + "Corrosive");
|
||||
|
||||
if(traits.contains(FluidTrait.NO_CONTAINER)) info.add(EnumChatFormatting.RED + "Cannot be stored in any universal tank");
|
||||
if(traits.contains(FluidTrait.LEAD_CONTAINER)) info.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold");
|
||||
if(enumTraits.contains(EnumFluidTrait.NO_CONTAINER)) info.add(EnumChatFormatting.RED + "Cannot be stored in any universal tank");
|
||||
if(enumTraits.contains(EnumFluidTrait.LEAD_CONTAINER)) info.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold");*/
|
||||
|
||||
List<String> hidden = new ArrayList();
|
||||
|
||||
for(Entry<Class<? extends FluidTrait>, FluidTrait> entry : this.traits.entrySet()) {
|
||||
entry.getValue().addInfo(info);
|
||||
entry.getValue().addInfoHidden(hidden);
|
||||
}
|
||||
|
||||
if(!hidden.isEmpty()) {
|
||||
|
||||
if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) {
|
||||
info.addAll(hidden);
|
||||
} else {
|
||||
|
||||
info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" +
|
||||
EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" +
|
||||
EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info");
|
||||
}
|
||||
}
|
||||
|
||||
/*info.add("");
|
||||
info.add(EnumChatFormatting.RED + "[DEBUG]");
|
||||
@ -190,7 +234,8 @@ public class FluidType {
|
||||
/**
|
||||
* Metadata for describing how the fluid acts, like being corrosive, not having fluid IDs or being only stored in certain containers.
|
||||
*/
|
||||
public static enum FluidTrait {
|
||||
/*@Deprecated
|
||||
public static enum EnumFluidTrait {
|
||||
LIQUID,
|
||||
GASEOUS,
|
||||
PETROCHEMICAL,
|
||||
@ -200,7 +245,7 @@ public class FluidType {
|
||||
NO_CONTAINER,
|
||||
LEAD_CONTAINER,
|
||||
NO_ID;
|
||||
}
|
||||
}*/
|
||||
|
||||
public static enum ExtContainer {
|
||||
CANISTER
|
||||
|
||||
@ -5,9 +5,9 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType.ExtContainer;
|
||||
import com.hbm.inventory.fluid.FluidType.FluidTrait;
|
||||
import com.hbm.inventory.fluid.types.*;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.*;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.*;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class Fluids {
|
||||
@ -95,6 +95,16 @@ public class Fluids {
|
||||
private static final HashMap<Integer, FluidType> idMapping = new HashMap();
|
||||
private static final HashMap<String, FluidType> nameMapping = new HashMap();
|
||||
protected static final List<FluidType> metaOrder = new ArrayList();
|
||||
|
||||
public static final FT_Liquid LIQUID = new FT_Liquid();
|
||||
public static final FT_Gaseous_ART EVAP = new FT_Gaseous_ART();
|
||||
public static final FT_Gaseous GASEOUS = new FT_Gaseous();
|
||||
public static final FT_Plasma PLASMA = new FT_Plasma();
|
||||
public static final FT_Amat ANTI = new FT_Amat();
|
||||
public static final FT_LeadContainer LEADCON = new FT_LeadContainer();
|
||||
public static final FT_NoContainer NOCON = new FT_NoContainer();
|
||||
public static final FT_NoID NOID = new FT_NoID();
|
||||
public static final FT_Delicious DELICIOUS = new FT_Delicious();
|
||||
|
||||
public static void init() {
|
||||
|
||||
@ -111,85 +121,85 @@ public class Fluids {
|
||||
* You may screw with metaOrder as much as you like, as long as you keep all fluids in the list exactly once.
|
||||
*/
|
||||
|
||||
NONE = new FluidType( "NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE);
|
||||
WATER = new FluidType( "WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE);
|
||||
STEAM = new Gas( "STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D);
|
||||
HOTSTEAM = new Gas( "HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D);
|
||||
SUPERHOTSTEAM = new Gas( "SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D);
|
||||
ULTRAHOTSTEAM = new Gas( "ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D);
|
||||
COOLANT = new FluidType( "COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).setHeatCap(0.25D);
|
||||
LAVA = new FluidType( "LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200);
|
||||
DEUTERIUM = new CombustibleGas( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000);
|
||||
TRITIUM = new CombustibleGas( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000);
|
||||
OIL = new Oil( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER);
|
||||
HOTOIL = new Oil( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350);
|
||||
HEAVYOIL = new Oil( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER);
|
||||
BITUMEN = new Petrochemical( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER);
|
||||
SMEAR = new Oil( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).setHeatEnergy(50_000).addContainers(0x624F3B, ExtContainer.CANISTER);
|
||||
HEATINGOIL = new Fuel( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 100_000).setHeatEnergy(150_000).addContainers(0x694235, ExtContainer.CANISTER);
|
||||
RECLAIMED = new Fuel( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 200_000).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER);
|
||||
PETROIL = new Fuel( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).setHeatEnergy(125_000).addContainers(0x2369F6, ExtContainer.CANISTER);
|
||||
LUBRICANT = new Petrochemical( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER);
|
||||
NAPHTHA = new Oil( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER);
|
||||
DIESEL = new Fuel( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).setHeatEnergy(200_000).addContainers(0xFF2C2C, ExtContainer.CANISTER);
|
||||
LIGHTOIL = new Oil( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER);
|
||||
KEROSENE = new Fuel( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).setHeatEnergy(300_000).addContainers(0xFF377D, ExtContainer.CANISTER);
|
||||
GAS = new FlammableOilGas( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(10_000);
|
||||
PETROLEUM = new FlammableOilGas( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(25_000);
|
||||
LPG = new Fuel( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000);
|
||||
BIOGAS = new FlammableOilGas( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(25_000);
|
||||
BIOFUEL = new Fuel( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).setHeatEnergy(150_000).addContainers(0x9EB623, ExtContainer.CANISTER);
|
||||
NITAN = new Fuel( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).setHeatEnergy(2_000_000).addContainers(0x6B238C, ExtContainer.CANISTER);
|
||||
UF6 = new RadioactiveGas( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE);
|
||||
PUF6 = new RadioactiveGas( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE);
|
||||
SAS3 = new FluidType( "SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE);
|
||||
SCHRABIDIC = new FluidType( "SCHRABIDIC", 0x006B6B, 5, 0, 5, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2);
|
||||
AMAT = new Antimatter( "AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER);
|
||||
ASCHRAB = new Antimatter( "ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER);
|
||||
ACID = new FluidType( "ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(FluidTrait.CORROSIVE);
|
||||
WATZ = new FluidType( "WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2);
|
||||
CRYOGEL = new FluidType( "CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170);
|
||||
HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000).addTraits(FluidTrait.LIQUID);
|
||||
OXYGEN = new FluidType( "OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC);
|
||||
XENON = new Gas( "XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT);
|
||||
BALEFIRE = new FluidType( "BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(FluidTrait.CORROSIVE);
|
||||
MERCURY = new FluidType( "MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE);
|
||||
PAIN = new FluidType( "PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE);
|
||||
WASTEFLUID = new RadioactiveLiquid( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER);
|
||||
WASTEGAS = new RadioactiveGas( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER);
|
||||
GASOLINE = new Fuel( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER);
|
||||
COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000).addContainers(0x2E155F, ExtContainer.CANISTER);
|
||||
SPENTSTEAM = new Gas( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D);
|
||||
FRACKSOL = new Petrochemical( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER);
|
||||
PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
|
||||
PLASMA_HD = new FluidType( "PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
|
||||
PLASMA_HT = new FluidType( "PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
|
||||
PLASMA_XM = new FluidType( "PLASMA_XM", 0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION).setTemp(4250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
|
||||
PLASMA_BF = new FluidType( "PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
|
||||
CARBONDIOXIDE = new Gas( "CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT);
|
||||
PLASMA_DH3 = new FluidType( "PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
|
||||
HELIUM3 = new Gas( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT);
|
||||
DEATH = new FluidType( "DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER);
|
||||
ETHANOL = new Fuel( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).setHeatEnergy(75_000).addContainers(0xEAFFF3, ExtContainer.CANISTER);
|
||||
HEAVYWATER = new FluidType( "HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE);
|
||||
CRACKOIL = new Oil( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE);
|
||||
COALOIL = new Oil( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE);
|
||||
HOTCRACKOIL = new Oil( "HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350);
|
||||
NAPHTHA_CRACK = new Oil( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE);
|
||||
LIGHTOIL_CRACK = new Oil( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE);
|
||||
DIESEL_CRACK = new Fuel( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000);
|
||||
AROMATICS = new Oil( "AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE);
|
||||
UNSATURATEDS = new Oil( "UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE);
|
||||
SALIENT = new FluidType( "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE);
|
||||
XPJUICE = new FluidType( "XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE);
|
||||
ENDERJUICE = new FluidType( "ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE);
|
||||
PETROIL_LEADED = new Fuel( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()).addContainers(0x2331F6, ExtContainer.CANISTER);
|
||||
GASOLINE_LEADED = new Fuel( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()).addContainers(0x2F775A, ExtContainer.CANISTER);
|
||||
COALGAS_LEADED = new Fuel( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()).addContainers(0x1E155F, ExtContainer.CANISTER);
|
||||
SULFURIC_ACID = new FluidType( "SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE);
|
||||
COOLANT_HOT = new FluidType( "COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).setHeatCap(COOLANT.heatCap);
|
||||
MUG = new FluidType( "MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).setHeatCap(1D);
|
||||
MUG_HOT = new FluidType(78, "MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setHeatCap(MUG.heatCap).setTemp(500);
|
||||
NONE = new FluidType("NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE);
|
||||
WATER = new FluidType("WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
|
||||
STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D).addTraits(GASEOUS);
|
||||
HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D).addTraits(GASEOUS);
|
||||
SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D).addTraits(GASEOUS);
|
||||
ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D).addTraits(GASEOUS);
|
||||
COOLANT = new FluidType("COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).setHeatCap(0.25D).addTraits(LIQUID);
|
||||
LAVA = new FluidType("LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200).addTraits(LIQUID);
|
||||
DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS);
|
||||
TRITIUM = new FluidType("TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS, new FT_VentRadiation(0.001F));
|
||||
OIL = new FluidType("OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER).addTraits(new FT_Flammable(10_000), LIQUID);
|
||||
HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(new FT_Flammable(10_000), LIQUID);
|
||||
HEAVYOIL = new FluidType("HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER).addTraits(new FT_Flammable(50_000), new FT_Combustible(FuelGrade.LOW, 25_000), LIQUID);
|
||||
BITUMEN = new FluidType("BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER).addTraits(LIQUID);
|
||||
SMEAR = new FluidType("SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(0x624F3B, ExtContainer.CANISTER).addTraits(new FT_Flammable(50_000), LIQUID);
|
||||
HEATINGOIL = new FluidType("HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(0x694235, ExtContainer.CANISTER).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.LOW, 100_000), LIQUID);
|
||||
RECLAIMED = new FluidType("RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).addContainers(0xF65723, ExtContainer.CANISTER).addTraits(new FT_Flammable(100_000), new FT_Combustible(FuelGrade.LOW, 200_000), LIQUID);
|
||||
PETROIL = new FluidType("PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(0x2369F6, ExtContainer.CANISTER).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 300_000), LIQUID);
|
||||
LUBRICANT = new FluidType("LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER).addTraits(LIQUID);
|
||||
NAPHTHA = new FluidType("NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID);
|
||||
DIESEL = new FluidType("DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(0xFF2C2C, ExtContainer.CANISTER).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 500_000), LIQUID);
|
||||
LIGHTOIL = new FluidType("LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID);
|
||||
KEROSENE = new FluidType("KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).addContainers(0xFF377D, ExtContainer.CANISTER).addTraits(new FT_Flammable(300_000), new FT_Combustible(FuelGrade.AERO, 1_250_000));
|
||||
GAS = new FluidType("GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(10_000), GASEOUS);
|
||||
PETROLEUM = new FluidType("PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), GASEOUS);
|
||||
LPG = new FluidType("LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID);
|
||||
BIOGAS = new FluidType("BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), GASEOUS);
|
||||
BIOFUEL = new FluidType("BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).addContainers(0x9EB623, ExtContainer.CANISTER).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID);
|
||||
NITAN = new FluidType("NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).addContainers(0x6B238C, ExtContainer.CANISTER).addTraits(new FT_Flammable(2_000_000), new FT_Combustible(FuelGrade.HIGH, 5_000_000), LIQUID);
|
||||
UF6 = new FluidType("UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(new FT_Corrosive(15), GASEOUS);
|
||||
PUF6 = new FluidType("PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_Corrosive(15), GASEOUS);
|
||||
SAS3 = new FluidType("SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_Corrosive(30), LIQUID);
|
||||
SCHRABIDIC = new FluidType("SCHRABIDIC", 0x006B6B, 5, 0, 5, EnumSymbol.ACID).addTraits(new FT_Corrosive(75), LIQUID);
|
||||
AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS);
|
||||
ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS);
|
||||
ACID = new FluidType("ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(new FT_Corrosive(40), LIQUID);
|
||||
WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), LIQUID);
|
||||
CRYOGEL = new FluidType("CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170).addTraits(LIQUID);
|
||||
HYDROGEN = new FluidType("HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), LIQUID, EVAP);
|
||||
OXYGEN = new FluidType("OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC).addTraits(LIQUID, EVAP);
|
||||
XENON = new FluidType("XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS);
|
||||
BALEFIRE = new FluidType("BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(new FT_Corrosive(50), new FT_Flammable(1_000_000), new FT_Combustible(FuelGrade.HIGH, 2_500_000), LIQUID);
|
||||
MERCURY = new FluidType("MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
|
||||
PAIN = new FluidType("PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(30));
|
||||
WASTEFLUID = new FluidType("WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON);
|
||||
WASTEGAS = new FluidType("WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON);
|
||||
GASOLINE = new FluidType("GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(0x2F7747, ExtContainer.CANISTER).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_000_000), LIQUID);
|
||||
COALGAS = new FluidType("COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(0x2E155F, ExtContainer.CANISTER).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 150_000), LIQUID);
|
||||
SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).setCompression(1D).addTraits(NOCON);
|
||||
FRACKSOL = new FluidType("FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addContainers(0x4F887F, ExtContainer.CANISTER).addTraits(new FT_Corrosive(15));
|
||||
PLASMA_DT = new FluidType("PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(NOCON, NOID, PLASMA);
|
||||
PLASMA_HD = new FluidType("PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(NOCON, NOID, PLASMA);
|
||||
PLASMA_HT = new FluidType("PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(NOCON, NOID, PLASMA);
|
||||
PLASMA_XM = new FluidType("PLASMA_XM", 0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION).setTemp(4250).addTraits(NOCON, NOID, PLASMA);
|
||||
PLASMA_BF = new FluidType("PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(NOCON, NOID, PLASMA);
|
||||
CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS);
|
||||
PLASMA_DH3 = new FluidType("PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(NOCON, NOID, PLASMA);
|
||||
HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS);
|
||||
DEATH = new FluidType("DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(80), LEADCON, LIQUID);
|
||||
ETHANOL = new FluidType("ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).addContainers(0xEAFFF3, ExtContainer.CANISTER).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.HIGH, 200_000), LIQUID);
|
||||
HEAVYWATER = new FluidType("HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
|
||||
CRACKOIL = new FluidType("CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER).addTraits(new FT_Flammable(10_000), LIQUID);
|
||||
COALOIL = new FluidType("COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER).addTraits(new FT_Flammable(10_000), LIQUID);
|
||||
HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addContainers(0x424242, ExtContainer.CANISTER).addTraits(new FT_Flammable(10_000), LIQUID);
|
||||
NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID);
|
||||
LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID);
|
||||
DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(0xFF2C2C, ExtContainer.CANISTER).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID);
|
||||
AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), LIQUID);
|
||||
UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS); //acetylene burns as hot as satan's asshole
|
||||
SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID);
|
||||
XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
|
||||
ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID);
|
||||
PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(0x2331F6, ExtContainer.CANISTER).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID);
|
||||
GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(0x2F775A, ExtContainer.CANISTER).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID);
|
||||
COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(0x1E155F, ExtContainer.CANISTER).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID);
|
||||
SULFURIC_ACID = new FluidType("SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(new FT_Corrosive(50), LIQUID);
|
||||
COOLANT_HOT = new FluidType("COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).setHeatCap(COOLANT.heatCap).addTraits(LIQUID);
|
||||
MUG = new FluidType("MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).setHeatCap(1D).addTraits(DELICIOUS, LIQUID);
|
||||
MUG_HOT = new FluidType(78, "MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setHeatCap(MUG.heatCap).setTemp(500).addTraits(DELICIOUS, LIQUID);
|
||||
|
||||
|
||||
// ^ ^ ^ ^ ^ ^ ^ ^
|
||||
|
||||
@ -1,26 +1,19 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
package com.hbm.inventory.fluid.trait;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
/** Because updating all the combustion engines and adding values by hand fucking sucks */
|
||||
public class FluidTypeCombustible extends FluidTypeFlammable {
|
||||
public class FT_Combustible extends FluidTrait {
|
||||
|
||||
protected FuelGrade fuelGrade;
|
||||
protected long combustionEnergy;
|
||||
|
||||
public FluidTypeCombustible(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(compat, color, p, f, r, symbol);
|
||||
}
|
||||
|
||||
public FluidTypeCombustible setCombustionEnergy(FuelGrade grade, long energy) {
|
||||
public FT_Combustible(FuelGrade grade, long energy) {
|
||||
this.fuelGrade = grade;
|
||||
this.combustionEnergy = energy;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -0,0 +1,32 @@
|
||||
package com.hbm.inventory.fluid.trait;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
public class FT_Corrosive extends FluidTrait {
|
||||
|
||||
/* 0-100 */
|
||||
private int rating;
|
||||
|
||||
public FT_Corrosive(int rating) {
|
||||
this.rating = rating;
|
||||
}
|
||||
|
||||
public int getRating() {
|
||||
return rating;
|
||||
}
|
||||
|
||||
public boolean isHighlyCorrosive() {
|
||||
return rating > 50;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInfo(List<String> info) {
|
||||
|
||||
if(isHighlyCorrosive())
|
||||
info.add(EnumChatFormatting.GOLD + "[Strongly Corrosive]");
|
||||
else
|
||||
info.add(EnumChatFormatting.YELLOW + "[Corrosive]");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.hbm.inventory.fluid.trait;
|
||||
|
||||
public class FT_Flammable extends FluidTrait {
|
||||
|
||||
/** How much heat energy (usually translates into HE 1:1) 1000mB hold */
|
||||
private long energy;
|
||||
|
||||
public FT_Flammable(long energy) {
|
||||
this.energy = energy;
|
||||
}
|
||||
|
||||
public long getHeatEnergy() {
|
||||
return this.energy;
|
||||
}
|
||||
}
|
||||
@ -1,23 +1,16 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
package com.hbm.inventory.fluid.trait;
|
||||
|
||||
import com.hbm.handler.radiation.ChunkRadiationManager;
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class RadioactiveFluid extends FluidType {
|
||||
public class FT_VentRadiation extends FluidTrait {
|
||||
|
||||
float radPerMB = 0;
|
||||
|
||||
public RadioactiveFluid(String name, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(name, color, p, f, r, symbol);
|
||||
}
|
||||
|
||||
public RadioactiveFluid setRadiation(float rad) {
|
||||
public FT_VentRadiation(float rad) {
|
||||
this.radPerMB = rad;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
17
src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java
Normal file
17
src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java
Normal file
@ -0,0 +1,17 @@
|
||||
package com.hbm.inventory.fluid.trait;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.inventory.FluidTank;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public abstract class FluidTrait {
|
||||
|
||||
/** Important information that should always be displayed */
|
||||
public void addInfo(List<String> info) { }
|
||||
/* General names of simple traits which are displayed when holding shift */
|
||||
public void addInfoHidden(List<String> info) { }
|
||||
|
||||
public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { }
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package com.hbm.inventory.fluid.trait;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
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]");
|
||||
}
|
||||
}
|
||||
|
||||
public static class FT_Gaseous_ART extends FluidTrait { } //at room temperature, for cryogenic hydrogen for example
|
||||
|
||||
public static class FT_Liquid extends FluidTrait {
|
||||
@Override public void addInfoHidden(List<String> info) {
|
||||
info.add(EnumChatFormatting.BLUE + "[Liquid]");
|
||||
}
|
||||
}
|
||||
|
||||
public static class FT_Plasma extends FluidTrait {
|
||||
@Override public void addInfoHidden(List<String> info) {
|
||||
info.add(EnumChatFormatting.LIGHT_PURPLE + "[Plasma]");
|
||||
}
|
||||
}
|
||||
|
||||
public static class FT_Amat extends FluidTrait {
|
||||
@Override public void addInfoHidden(List<String> info) {
|
||||
info.add(EnumChatFormatting.DARK_RED + "[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]");
|
||||
}
|
||||
}
|
||||
|
||||
public static class FT_NoID extends FluidTrait { }
|
||||
public static class FT_NoContainer extends FluidTrait { }
|
||||
public static class FT_Delicious extends FluidTrait { }
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class Antimatter extends FluidType {
|
||||
|
||||
public Antimatter(String name, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(name, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.AMAT);
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class CombustibleGas extends FluidTypeCombustible {
|
||||
|
||||
public CombustibleGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(compat, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.GASEOUS);
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class FlammableGas extends FluidTypeFlammable {
|
||||
|
||||
public FlammableGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(compat, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.GASEOUS);
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class FlammableOilGas extends FlammableGas {
|
||||
|
||||
public FlammableOilGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(compat, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.PETROCHEMICAL);
|
||||
}
|
||||
}
|
||||
@ -1,39 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
/** If it burns, it needs to be an instance of this class. */
|
||||
public class FluidTypeFlammable extends FluidType {
|
||||
|
||||
/** How much heat energy (usually translates into HE 1:1) 1000mB hold */
|
||||
protected long energy;
|
||||
|
||||
public FluidTypeFlammable(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(compat, color, p, f, r, symbol);
|
||||
}
|
||||
|
||||
public FluidTypeFlammable setHeatEnergy(long energy) {
|
||||
this.energy = energy;
|
||||
return this;
|
||||
}
|
||||
|
||||
public long getHeatEnergy() {
|
||||
return this.energy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInfo(List<String> info) {
|
||||
super.addInfo(info);
|
||||
|
||||
info.add(EnumChatFormatting.YELLOW + "[Flammable]");
|
||||
|
||||
if(energy > 0)
|
||||
info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "HE " + EnumChatFormatting.YELLOW + "per bucket");
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class Fuel extends FluidTypeCombustible {
|
||||
|
||||
public Fuel(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(compat, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL);
|
||||
}
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class Gas extends FluidType {
|
||||
|
||||
public Gas(String name, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(name, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.GASEOUS);
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class Oil extends FluidTypeFlammable {
|
||||
|
||||
public Oil(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(compat, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL);
|
||||
}
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class Petrochemical extends FluidType {
|
||||
|
||||
public Petrochemical(String name, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(name, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL);
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class RadioactiveGas extends RadioactiveFluid {
|
||||
|
||||
public RadioactiveGas(String name, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(name, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.GASEOUS);
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
package com.hbm.inventory.fluid.types;
|
||||
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
|
||||
public class RadioactiveLiquid extends RadioactiveFluid {
|
||||
|
||||
public RadioactiveLiquid(String name, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
super(name, color, p, f, r, symbol);
|
||||
this.addTraits(FluidTrait.LIQUID);
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@ package com.hbm.inventory.gui;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.inventory.container.ContainerMachineGasFlare;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeFlammable;
|
||||
import com.hbm.inventory.fluid.trait.FT_Flammable;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.NBTControlPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
@ -79,7 +79,7 @@ public class GUIMachineGasFlare extends GuiInfoContainer {
|
||||
if(flare.isOn) drawTexturedModalRect(guiLeft + 79, guiTop + 15, 176, 0, 35, 10);
|
||||
if(flare.doesBurn) drawTexturedModalRect(guiLeft + 79, guiTop + 49, 176, 10, 35, 14);
|
||||
|
||||
if(flare.isOn && flare.doesBurn && flare.tank.getFill() > 0 && flare.tank.getTankType() instanceof FluidTypeFlammable)
|
||||
if(flare.isOn && flare.doesBurn && flare.tank.getFill() > 0 && flare.tank.getTankType().hasTrait(FT_Flammable.class))
|
||||
drawTexturedModalRect(guiLeft + 88, guiTop + 29, 176, 24, 18, 18);
|
||||
|
||||
flare.tank.renderTank(guiLeft + 35, guiTop + 69, this.zLevel, 16, 52);
|
||||
|
||||
@ -3,7 +3,7 @@ package com.hbm.inventory.gui;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.inventory.container.ContainerOilburner;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeFlammable;
|
||||
import com.hbm.inventory.fluid.trait.FT_Flammable;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.NBTControlPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
@ -35,8 +35,8 @@ public class GUIOilburner extends GuiInfoContainer {
|
||||
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 116, guiTop + 17, 16, 52, x, y, new String[] { String.format("%,d", Math.min(diFurnace.heatEnergy, diFurnace.maxHeatEnergy)) + " / " + String.format("%,d", diFurnace.maxHeatEnergy) + "TU" });
|
||||
|
||||
if(diFurnace.tank.getTankType() instanceof FluidTypeFlammable) {
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 34, 18, 18, x, y, new String[] { "10mB/t", (int)(((FluidTypeFlammable)diFurnace.tank.getTankType()).getHeatEnergy() / 1000) * 10 + "TU/t" });
|
||||
if(diFurnace.tank.getTankType().hasTrait(FT_Flammable.class)) {
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 34, 18, 18, x, y, new String[] { "10mB/t", (int)(diFurnace.tank.getTankType().getTrait(FT_Flammable.class).getHeatEnergy() / 1000) * 10 + "TU/t" });
|
||||
}
|
||||
|
||||
diFurnace.tank.renderTankInfo(this, x, y, guiLeft + 44, guiTop + 17, 16, 52);
|
||||
@ -75,7 +75,7 @@ public class GUIOilburner extends GuiInfoContainer {
|
||||
if(diFurnace.isOn) {
|
||||
drawTexturedModalRect(guiLeft + 70, guiTop + 54, 210, 0, 35, 14);
|
||||
|
||||
if(diFurnace.tank.getFill() > 0 && diFurnace.tank.getTankType() instanceof FluidTypeFlammable) {
|
||||
if(diFurnace.tank.getFill() > 0 && diFurnace.tank.getTankType().hasTrait(FT_Flammable.class)) {
|
||||
drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 0, 18, 18);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.container.ContainerOilburner;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeFlammable;
|
||||
import com.hbm.inventory.fluid.trait.FT_Flammable;
|
||||
import com.hbm.inventory.gui.GUIOilburner;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
@ -52,8 +52,8 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements
|
||||
|
||||
if(this.isOn && this.heatEnergy < maxHeatEnergy) {
|
||||
|
||||
if(tank.getTankType() instanceof FluidTypeFlammable) {
|
||||
FluidTypeFlammable type = (FluidTypeFlammable) tank.getTankType();
|
||||
if(tank.getTankType().hasTrait(FT_Flammable.class)) {
|
||||
FT_Flammable type = tank.getTankType().getTrait(FT_Flammable.class);
|
||||
|
||||
int burnRate = 10;
|
||||
int toBurn = Math.min(burnRate, tank.getFill());
|
||||
|
||||
@ -8,8 +8,8 @@ import com.hbm.inventory.FluidContainerRegistry;
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
@ -152,8 +152,8 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE
|
||||
|
||||
public static long getHEFromFuel(FluidType type) {
|
||||
|
||||
if(type instanceof FluidTypeCombustible) {
|
||||
FluidTypeCombustible fuel = (FluidTypeCombustible) type;
|
||||
if(type.hasTrait(FT_Combustible.class)) {
|
||||
FT_Combustible fuel = type.getTrait(FT_Combustible.class);
|
||||
FuelGrade grade = fuel.getGrade();
|
||||
double efficiency = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0;
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ import com.hbm.interfaces.IFluidAcceptor;
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeFlammable;
|
||||
import com.hbm.inventory.fluid.trait.FT_Flammable;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
@ -211,7 +211,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement
|
||||
|
||||
public int getPowerFromFuel() {
|
||||
FluidType type = tanks[1].getTankType();
|
||||
return type instanceof FluidTypeFlammable ? (int)(((FluidTypeFlammable) type).getHeatEnergy() / 1000L) : 0;
|
||||
return type.hasTrait(FT_Flammable.class) ? (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() / 1000L) : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -8,8 +8,8 @@ import com.hbm.inventory.FluidContainerRegistry;
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.packet.AuxElectricityPacket;
|
||||
@ -272,8 +272,8 @@ public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implem
|
||||
|
||||
public static long getHEFromFuel(FluidType type) {
|
||||
|
||||
if(type instanceof FluidTypeCombustible) {
|
||||
FluidTypeCombustible fuel = (FluidTypeCombustible) type;
|
||||
if(type.hasTrait(FT_Combustible.class)) {
|
||||
FT_Combustible fuel = type.getTrait(FT_Combustible.class);
|
||||
FuelGrade grade = fuel.getGrade();
|
||||
double efficiency = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0;
|
||||
return (long) (fuel.getCombustionEnergy() / 1000L * efficiency);
|
||||
|
||||
@ -8,8 +8,8 @@ import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.UpgradeManager;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
@ -115,8 +115,8 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements
|
||||
long burn = 0;
|
||||
int amount = 1 + this.afterburner;
|
||||
|
||||
if(tank.getTankType() instanceof FluidTypeCombustible && ((FluidTypeCombustible) tank.getTankType()).getGrade() == FuelGrade.AERO) {
|
||||
burn = ((FluidTypeCombustible) tank.getTankType()).getCombustionEnergy() / 1_000;
|
||||
if(tank.getTankType().hasTrait(FT_Combustible.class) && tank.getTankType().getTrait(FT_Combustible.class).getGrade() == FuelGrade.AERO) {
|
||||
burn = tank.getTankType().getTrait(FT_Combustible.class).getCombustionEnergy() / 1_000;
|
||||
}
|
||||
|
||||
int toBurn = Math.min(amount, this.tank.getFill());
|
||||
|
||||
@ -9,8 +9,9 @@ import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.UpgradeManager;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.FluidType.FluidTrait;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeFlammable;
|
||||
import com.hbm.inventory.fluid.trait.FT_Flammable;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART;
|
||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.main.MainRegistry;
|
||||
@ -111,9 +112,9 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
||||
maxVent += maxVent * burn;
|
||||
maxBurn += maxBurn * burn;
|
||||
|
||||
if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) {
|
||||
if(!doesBurn || !(tank.getTankType().hasTrait(FT_Flammable.class))) {
|
||||
|
||||
if(tank.getTankType().traits.contains(FluidTrait.GASEOUS)) {
|
||||
if(tank.getTankType().hasTrait(FT_Gaseous.class) || tank.getTankType().hasTrait(FT_Gaseous_ART.class)) {
|
||||
int eject = Math.min(maxVent, tank.getFill());
|
||||
tank.setFill(tank.getFill() - eject);
|
||||
tank.getTankType().onFluidRelease(this, tank, eject);
|
||||
@ -123,15 +124,15 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
||||
}
|
||||
} else {
|
||||
|
||||
if(tank.getTankType() instanceof FluidTypeFlammable) {
|
||||
if(tank.getTankType().hasTrait(FT_Flammable.class)) {
|
||||
int eject = Math.min(maxBurn, tank.getFill());
|
||||
tank.setFill(tank.getFill() - eject);
|
||||
|
||||
int penalty = 2;
|
||||
if(!tank.getTankType().traits.contains(FluidTrait.GASEOUS))
|
||||
if(!tank.getTankType().hasTrait(FT_Gaseous.class) && !tank.getTankType().hasTrait(FT_Gaseous_ART.class))
|
||||
penalty = 10;
|
||||
|
||||
long powerProd = ((FluidTypeFlammable) tank.getTankType()).getHeatEnergy() * eject / 1_000; // divided by 1000 per mB
|
||||
long powerProd = tank.getTankType().getTrait(FT_Flammable.class).getHeatEnergy() * eject / 1_000; // divided by 1000 per mB
|
||||
powerProd /= penalty;
|
||||
powerProd += powerProd * yield / 3;
|
||||
|
||||
@ -166,7 +167,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
||||
|
||||
if(isOn && tank.getFill() > 0) {
|
||||
|
||||
if((!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) && tank.getTankType().traits.contains(FluidTrait.GASEOUS)) {
|
||||
if((!doesBurn || !(tank.getTankType().hasTrait(FT_Flammable.class))) && (tank.getTankType().hasTrait(FT_Gaseous.class) || tank.getTankType().hasTrait(FT_Gaseous_ART.class))) {
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "tower");
|
||||
@ -184,7 +185,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
||||
|
||||
}
|
||||
|
||||
if(doesBurn && tank.getTankType() instanceof FluidTypeFlammable && MainRegistry.proxy.me().getDistanceSq(xCoord, yCoord + 10, zCoord) <= 1024) {
|
||||
if(doesBurn && tank.getTankType().hasTrait(FT_Flammable.class) && MainRegistry.proxy.me().getDistanceSq(xCoord, yCoord + 10, zCoord) <= 1024) {
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "vanillaExt");
|
||||
|
||||
@ -8,7 +8,7 @@ import com.hbm.interfaces.IFluidAcceptor;
|
||||
import com.hbm.interfaces.IFluidSource;
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.FluidType.FluidTrait;
|
||||
import com.hbm.inventory.fluid.trait.FT_Corrosive;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.main.ModEventHandler;
|
||||
@ -98,7 +98,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
|
||||
|
||||
//for when you fill corrosive liquid into an iron tank
|
||||
if((b == ModBlocks.barrel_iron && tank.getTankType().isCorrosive()) ||
|
||||
(b == ModBlocks.barrel_steel && tank.getTankType().traits.contains(FluidTrait.CORROSIVE_2))) {
|
||||
(b == ModBlocks.barrel_steel && tank.getTankType().hasTrait(FT_Corrosive.class) && tank.getTankType().getTrait(FT_Corrosive.class).getRating() > 50)) {
|
||||
ItemStack[] copy = this.slots.clone();
|
||||
this.slots = new ItemStack[6];
|
||||
worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.barrel_corroded);
|
||||
|
||||
@ -8,7 +8,7 @@ import com.hbm.interfaces.IFluidContainer;
|
||||
import com.hbm.interfaces.IFluidSource;
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.FluidType.FluidTrait;
|
||||
import com.hbm.inventory.fluid.trait.FT_Corrosive;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
@ -73,7 +73,7 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements
|
||||
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true);
|
||||
}
|
||||
|
||||
if(tank.getTankType().traits.contains(FluidTrait.CORROSIVE_2)) {
|
||||
if(tank.getTankType().hasTrait(FT_Corrosive.class) && tank.getTankType().getTrait(FT_Corrosive.class).isHighlyCorrosive()) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user