diff options
| author | Draknyte1 <Draknyte1@hotmail.com> | 2016-09-14 01:10:02 +1000 |
|---|---|---|
| committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-09-14 01:10:02 +1000 |
| commit | 91e18f54e4733c695ac023d87adfcef9e8dbbb4a (patch) | |
| tree | e5f964bc58ae83493b1a16137093dc08ae7413c4 /src/Java/gtPlusPlus | |
| parent | 6c74b062034508a0ef00a68c5b4c164b3f155fc4 (diff) | |
| download | GT5-Unofficial-91e18f54e4733c695ac023d87adfcef9e8dbbb4a.tar.gz GT5-Unofficial-91e18f54e4733c695ac023d87adfcef9e8dbbb4a.tar.bz2 GT5-Unofficial-91e18f54e4733c695ac023d87adfcef9e8dbbb4a.zip | |
Attempting to Rewrite the entire material system for future use (Also makes life easier if I do something similar in 1.10)
Diffstat (limited to 'src/Java/gtPlusPlus')
16 files changed, 1171 insertions, 63 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java index ceb8880299..de4520fee9 100644 --- a/src/Java/gtPlusPlus/core/block/ModBlocks.java +++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java @@ -1,7 +1,7 @@ package gtPlusPlus.core.block; import gtPlusPlus.core.block.general.LightGlass; -import gtPlusPlus.core.block.general.fluids.FluidRegistryHandler; +import gtPlusPlus.core.fluids.FluidRegistryHandler; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaCasingBlocks; @@ -25,10 +25,7 @@ public final class ModBlocks { public static Block MatterFabricatorEffectBlock; public static Fluid fluidJackDaniels = new Fluid("fluidJackDaniels"); - public static Block blockFluidJackDaniels; - public static Block blockGtFrameStaballoy; - public static Block blockGtFrameTantalloy60; - public static Block blockGtFrameTantalloy61; + public static Block blockFluidJackDaniels; diff --git a/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java new file mode 100644 index 0000000000..ad8d78edb1 --- /dev/null +++ b/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java @@ -0,0 +1,54 @@ +package gtPlusPlus.core.fluids; + +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.lib.CORE; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fluids.Fluid; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockFluidBase extends BlockFluidClassic { + + @SideOnly(Side.CLIENT) + protected IIcon stillIcon; + @SideOnly(Side.CLIENT) + protected IIcon flowingIcon; + + protected int colour; + + public BlockFluidBase(Fluid fluid, Material material, int colour) { + super(fluid, material); + this.colour = colour; + setCreativeTab(AddToCreativeTab.tabMisc); + } + + @Override + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1)? stillIcon : flowingIcon; + } + + @SideOnly(Side.CLIENT) + @Override + public void registerBlockIcons(IIconRegister register) { + stillIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated"); + flowingIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated"); + } + + @Override + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.canDisplace(world, x, y, z); + } + + @Override + public boolean displaceIfPossible(World world, int x, int y, int z) { + if (world.getBlock(x, y, z).getMaterial().isLiquid()) return false; + return super.displaceIfPossible(world, x, y, z); + } + +} diff --git a/src/Java/gtPlusPlus/core/block/general/fluids/FluidRegistryHandler.java b/src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java index bda2aae35b..1df2b406b8 100644 --- a/src/Java/gtPlusPlus/core/block/general/fluids/FluidRegistryHandler.java +++ b/src/Java/gtPlusPlus/core/fluids/FluidRegistryHandler.java @@ -1,7 +1,8 @@ -package gtPlusPlus.core.block.general.fluids; +package gtPlusPlus.core.fluids; import static gtPlusPlus.core.block.ModBlocks.blockFluidJackDaniels; import static gtPlusPlus.core.block.ModBlocks.fluidJackDaniels; +import gtPlusPlus.core.block.general.fluids.BlockFluidJackDaniels; import gtPlusPlus.core.lib.CORE; import net.minecraft.block.material.Material; import net.minecraftforge.fluids.FluidRegistry; diff --git a/src/Java/gtPlusPlus/core/fluids/GenericFluid.java b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java new file mode 100644 index 0000000000..f67fda744e --- /dev/null +++ b/src/Java/gtPlusPlus/core/fluids/GenericFluid.java @@ -0,0 +1,40 @@ +package gtPlusPlus.core.fluids; + +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import cpw.mods.fml.common.registry.GameRegistry; + +public class GenericFluid extends Fluid{ + + protected String fluidName; + public Fluid fluidFactory; + public Block blockFactory; + public short[] rgba; + + public GenericFluid(String fluidName, int luminosity, int density, int temperature, int viscosity, boolean isGas, short[] rgba) { + super(fluidName); + fluidFactory = this; + this.rgba = rgba; + fluidFactory.setLuminosity(luminosity); + fluidFactory.setDensity(density); + fluidFactory.setTemperature(temperature); + fluidFactory.setViscosity(viscosity); + fluidFactory.setGaseous(isGas); + fluidFactory.setUnlocalizedName("fluid"+fluidName); + FluidRegistry.registerFluid(fluidFactory); + blockFactory = new BlockFluidBase(fluidFactory, Material.water, Utils.rgbtoHexValue(rgba[0], rgba[1], rgba[2])).setBlockName("fluidblock"+fluidName); + GameRegistry.registerBlock(blockFactory, CORE.MODID + "_" + blockFactory.getUnlocalizedName().substring(5)); + //fluidFactory.setUnlocalizedName(blockFactory.getUnlocalizedName()); + + } + + @Override + public int getColor() { + return Math.max(0, Math.min(255, this.rgba[0])) << 16 | Math.max(0, Math.min(255, this.rgba[1])) << 8 | Math.max(0, Math.min(255, this.rgba[2])); + } + +} diff --git a/src/Java/gtPlusPlus/core/handler/MaterialHandler.java b/src/Java/gtPlusPlus/core/handler/MaterialHandler.java new file mode 100644 index 0000000000..52d95817e5 --- /dev/null +++ b/src/Java/gtPlusPlus/core/handler/MaterialHandler.java @@ -0,0 +1,29 @@ +package gtPlusPlus.core.handler; + +import gregtech.api.enums.Materials; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.materials.MaterialUtils; + +//Finally Wrote a proper material class, sigh. +public class MaterialHandler implements Runnable{ + + int arrayPos = 0; + boolean[] oneOfEachElementArray; + Material[] AllGregtechMaterials; + + + @Override + public void run() { + //Register GT Base Materials First + Utils.LOG_INFO("Adding All basic elements to the Material Dictionary."); + for (Materials x: Materials.values()){ + if (x.getProtons() <= 100 && !oneOfEachElementArray[arrayPos]){ + AllGregtechMaterials[arrayPos] = MaterialUtils.generateMaterialFromGtENUM(x); + oneOfEachElementArray[arrayPos] = true; + arrayPos++; + } + } + } + +} diff --git a/src/Java/gtPlusPlus/core/lib/MaterialInfo.java b/src/Java/gtPlusPlus/core/lib/MaterialInfo.java index fdd7ccfa76..455becc2d1 100644 --- a/src/Java/gtPlusPlus/core/lib/MaterialInfo.java +++ b/src/Java/gtPlusPlus/core/lib/MaterialInfo.java @@ -15,36 +15,67 @@ import net.minecraft.item.ItemStack; public enum MaterialInfo { ENERGYCRYSTAL(GTplusplus.randomDust_A, 8, GTplusplus.randomDust_B, 8, GTplusplus.randomDust_C, 8, GTplusplus.randomDust_D, 8, "dustEnergyCrystal", 1, noItem, 0), + BLOODSTEEL(noItem, 0, noItem, 0, noItem, 0, noItem, 0, noItem, 0, noItem, 0), + STABALLOY("dustTitanium", 1, "dustUranium", 8, noItem, 0, noItem, 0, "dustStaballoy", 1, noItem, 0), + TANTALLOY60("dustTungsten", 1, "dustTantalum", 8, "dustTinyTitanium", 5, noItem, 0, "dustTantalloy60", 1, noItem, 0), + TANTALLOY61("dustTungsten", 1, "dustSmallTitanium", 3, "dustSmallYttrium", 2, "dustTantalum", 9, "dustTantalloy61", 1, noItem, 0), + QUANTUM(noItem, 0, noItem, 0, noItem, 0, noItem, 0, noItem, 0, noItem, 0), + TUMBAGA("dustGold", 6, "dustCopper", 3, noItem, 0, noItem, 0, "dustTumbaga", 2, noItem, 0), + POTIN("dustBronze", 3, "dustTin", 2, "dustLead", 4, noItem, 0, "dustPotin", 3, noItem, 0), + BEDROCKIUM(noItem, 0, noItem, 0, noItem, 0, noItem, 0, noItem, 0, noItem, 0), + INCONEL625("dustNickel", 5, "dustChrome", 2, "dustWroughtIron", 1, "dustMolybdenum", 1, "dustInconel625", 4, "dustTinyDarkAsh", 1), + INCONEL690("dustNickel", 5, "dustChrome", 2, "dustNiobium", 1, "dustMolybdenum", 1, "dustInconel690", 2, "dustTinyDarkAsh", 1), + INCONEL792("dustNickel", 5, "dustChrome", 1, "dustAluminium", 2, "dustNiobium", 1, "dustInconel792", 2, "dustTinyDarkAsh", 1), + TUNGSTENCARBIDE("dustTungsten", 16, "dustCarbon", 16, noItem, 0, noItem, 0, "dustTungstenCarbide", 4, noItem, 0), + SILICONCARBIDE("dustSilicon", 16, "dustCarbon", 16, noItem, 0, noItem, 0, "dustSiliconCarbide", 4, noItem, 0), + ZERON100("dustChrome", 5, "dustSmallNickel", 6, "dustSmallMolybdenum", 3, "dustSteel", 14, "dustZeron100", 5, noItem, 0), + MARAGING250("dustSteel", 4, "dustNickel", 2, "dustCobalt", 1, "dustTinyTitanium", 1, "dustMaragingSteel250", 6, noItem, 0), + MARAGING300("dustSteel", 5, "dustNickel", 2, "dustCobalt", 2, "dustSmallTitanium", 1, "dustMaragingSteel300", 5, noItem, 0), + MARAGING350("dustSteel", 6, "dustNickel", 3, "dustCobalt", 3, "dustTitanium", 1, "dustMaragingSteel350", 4, noItem, 0), + STELLITE("dustCobalt", 4, "dustChrome", 4, "dustManganese", 2, "dustTitanium", 1, "dustStellite", 2, noItem, 0), + TALONITE("dustCobalt", 4, "dustChrome", 4, "dustPhosphorus", 1, "dustMolybdenum", 1, "dustTalonite", 2, noItem, 0), + HASTELLOY_W("dustSmallCobalt", 1, "dustSmallChrome", 4, "dustMolybdenum", 2, "dustNickel", 6, "dustHastelloyW", 2, noItem, 0), + HASTELLOY_X("dustTinyCobalt", 6, "dustChrome", 2, "dustMolybdenum", 1, "dustNickel", 5, "dustHastelloyX", 2, noItem, 0), + HASTELLOY_C276("dustSmallCobalt", 1, "dustSmallChrome", 14, "dustSmallMolybdenum", 14, "dustNickel", 5, "dustHastelloyC276", 2, noItem, 0), + INCOLOY020("dustIron", 4, "dustChrome", 2, "dustTinyCarbon", 2, "dustSmallCopper", 4, "dustIncoloy020", 1, noItem, 0), + INCOLOYDS("dustIron", 4, "dustChrome", 2, "dustTinyTitanium", 2, "dustSmallManganese", 1, "dustIncoloyDS", 1, noItem, 0), + INCOLOYMA956("dustIron", 6, "dustChrome", 2, "dustSmallAluminium", 5, "dustTinyYttrium", 1, "dustIncoloyMA956", 1, noItem, 0), + TANTALUMCARBIDE("dustTantalum", 4, "dustCarbon", 2, noItem, 0, noItem, 0, "dustTantalumCarbide", 1, noItem, 0), + ZIRCONIUM(noItem, 0, noItem, 0, noItem, 0, noItem, 0, "dustZirconium", 1, noItem, 0), + ZIRCONIUMCARBIDE("dustZirconium", 2, "dustCarbon", 2, noItem, 0, noItem, 0, "dustZirconiumCarbide", 1, noItem, 0), + NIOMBIUMCARBIDE("dustNiobium", 2, "dustCarbon", 2, noItem, 0, noItem, 0, "dustNiobiumCarbide", 1, noItem, 0), + HASTELLOY_N("dustIron", 1, "dustSmallChrome", 7, "dustSmallMolybdenum", 12, "dustNickel", 4, "dustHastelloyN", 1, noItem, 0), + URANIUM233(noItem, 0, noItem, 0, noItem, 0, noItem, 0, noItem, 0, noItem, 0); diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java new file mode 100644 index 0000000000..c0d393ee58 --- /dev/null +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -0,0 +1,485 @@ +package gtPlusPlus.core.material; + + +public class ALLOY { + + public static final Material ENERGYCRYSTAL = new Material( + "name", //Material Name + new short[]{228, 255, 0, 0}, //Material Colour + 5660, //Melting Point in C + 0, //Boiling Point in C + 100, //Protons + 100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.GOLD, 50), + new MaterialStack(ELEMENT.SILVER, 50) + }); + + public static final Material BLOODSTEEL = new Material( + "Blood Steel", //Material Name + new short[]{142, 28, 0, 0}, //Material Colour + 2500, //Melting Point in C + 0, //Boiling Point in C + 100, //Protons + 100, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.GOLD, 50), + new MaterialStack(ELEMENT.SILVER, 50) + }); + + public static final Material STABALLOY = new Material( + "Staballoy", //Material Name + new short[]{68, 75, 66, 0}, //Material Colour + 3450, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.URANIUM.getProtons()*9)+ELEMENT.TITANIUM.getProtons())/10, //Protons + ((ELEMENT.URANIUM.getNeutrons()*9)+ELEMENT.TITANIUM.getNeutrons())/10, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.URANIUM, 90), + new MaterialStack(ELEMENT.TITANIUM, 10) + }); + + public static final Material TANTALLOY_60 = new Material( + "Tantalloy-60", //Material Name + new short[]{66, 75, 166, 0}, //Material Colour + 3025, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.TUNGSTEN.getProtons()*1)+(ELEMENT.TANTALUM.getProtons()*8)+(ELEMENT.TITANIUM.getProtons()*1))/10, //Protons + ((ELEMENT.TUNGSTEN.getNeutrons()*1)+(ELEMENT.TANTALUM.getNeutrons()*8)+(ELEMENT.TITANIUM.getNeutrons()*1))/10, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.TUNGSTEN, 7), + new MaterialStack(ELEMENT.TANTALUM, 90), + new MaterialStack(ELEMENT.TANTALUM, 2) + }); + + public static final Material TANTALLOY_61 = new Material( + "Tantalloy-61", //Material Name + new short[]{122, 135, 196, 0}, //Material Colour + 3030, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.TUNGSTEN.getProtons()*1)+(ELEMENT.TANTALUM.getProtons()*7)+(ELEMENT.TITANIUM.getProtons()*1)+(ELEMENT.YTTRIUM.getProtons()*1))/10, //Protons + ((ELEMENT.TUNGSTEN.getNeutrons()*1)+(ELEMENT.TANTALUM.getNeutrons()*7)+(ELEMENT.TITANIUM.getNeutrons()*1)+(ELEMENT.YTTRIUM.getNeutrons()*1))/10, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.TUNGSTEN, 10), + new MaterialStack(ELEMENT.TANTALUM, 70), + new MaterialStack(ELEMENT.TITANIUM, 10), + new MaterialStack(ELEMENT.YTTRIUM, 10) + }); + + public static final Material QUANTUM = new Material( + "Quantum", //Material Name + new short[]{128, 128, 128, 0}, //Material Colour + 9999, //Melting Point in C + 0, //Boiling Point in C + 100, //Protons + 100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + null); + + public static final Material BRONZE = new Material( + "Bronze", //Material Name + new short[]{128, 128, 128, 0}, //Material Colour + ((ELEMENT.TIN.getMeltingPoint_C()*1)+(ELEMENT.COPPER.getMeltingPoint_C()*3))/4, //Melting point in C + 0, //Boiling Point in C + ((ELEMENT.TIN.getProtons()*1)+(ELEMENT.COPPER.getProtons()*3))/4, //Protons + ((ELEMENT.TIN.getNeutrons()*1)+(ELEMENT.COPPER.getNeutrons()*3))/4, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.COPPER, 75), + new MaterialStack(ELEMENT.TIN, 25) + }); + + public static final Material TUMBAGA = new Material( + "Tumbaga", //Material Name + new short[]{255,178,15, 0}, //Material Colour + ((ELEMENT.GOLD.getMeltingPoint_C()*7)+(ELEMENT.COPPER.getMeltingPoint_C()*3))/10, //Melting point in C + 0, //Boiling Point in C + ((ELEMENT.GOLD.getProtons()*7)+(ELEMENT.COPPER.getProtons()*3))/10, //Protons + ((ELEMENT.GOLD.getNeutrons()*7)+(ELEMENT.COPPER.getNeutrons()*3))/10, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.GOLD, 70), + new MaterialStack(ELEMENT.COPPER, 30) + }); + + public static final Material POTIN = new Material( + "Potin", //Material Name + new short[]{201,151,129, 0}, //Material Colour + ((ELEMENT.LEAD.getMeltingPoint_C()*4)+(ALLOY.BRONZE.getMeltingPoint_C()*4)+(ELEMENT.TIN.getMeltingPoint_C()*2))/10, //Melting point in C + 0, //Boiling Point in C + ((ELEMENT.LEAD.getProtons()*4)+(ALLOY.BRONZE.getProtons()*4)+(ELEMENT.TIN.getProtons()*2))/10, //Protons + ((ELEMENT.LEAD.getNeutrons()*4)+(ALLOY.BRONZE.getNeutrons()*4)+(ELEMENT.TIN.getNeutrons()*2))/10, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.LEAD, 40), + new MaterialStack(ALLOY.BRONZE, 40), + new MaterialStack(ELEMENT.TIN, 20) + }); + + public static final Material BEDROCKIUM = new Material( + "Bedrockium", //Material Name + new short[]{32, 32, 32, 0}, //Material Colour + 7735, //Melting Point in C + 0, //Boiling Point in C + 100, //Protons + 100, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + null); + + public static final Material INCONEL_625 = new Material( + "Inconel-625", //Material Name + new short[]{128, 200, 128, 0}, //Material Colour + 1425, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.NICKEL.getProtons()*6)+(ELEMENT.CHROMIUM.getProtons()*2)+(ELEMENT.IRON.getProtons()*1)+(ELEMENT.MOLYBDENUM.getProtons()*1))/10, //Protons + ((ELEMENT.NICKEL.getNeutrons()*6)+(ELEMENT.CHROMIUM.getNeutrons()*2)+(ELEMENT.IRON.getNeutrons()*1)+(ELEMENT.MOLYBDENUM.getNeutrons()*1))/10, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.NICKEL, 60), + new MaterialStack(ELEMENT.CHROMIUM, 20), + new MaterialStack(ELEMENT.IRON, 10), + new MaterialStack(ELEMENT.MOLYBDENUM, 10) + }); + + public static final Material INCONEL_690 = new Material( + "Inconel-690", //Material Name + new short[]{118, 220, 138, 0}, //Material Colour + 1425, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.NICKEL.getProtons()*6)+(ELEMENT.CHROMIUM.getProtons()*2)+(ELEMENT.NIOBIUM.getProtons()*1)+(ELEMENT.MOLYBDENUM.getProtons()*1))/10, //Protons + ((ELEMENT.NICKEL.getNeutrons()*6)+(ELEMENT.CHROMIUM.getNeutrons()*2)+(ELEMENT.NIOBIUM.getNeutrons()*1)+(ELEMENT.MOLYBDENUM.getNeutrons()*1))/10, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.NICKEL, 60), + new MaterialStack(ELEMENT.CHROMIUM, 20), + new MaterialStack(ELEMENT.NIOBIUM, 10), + new MaterialStack(ELEMENT.MOLYBDENUM, 10) + }); + + public static final Material INCONEL_792 = new Material( + "Inconel-792", //Material Name + new short[]{108, 240, 118, 0}, //Material Colour + 1425, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.NICKEL.getProtons()*6)+(ELEMENT.CHROMIUM.getProtons()*1)+(ELEMENT.IRON.getProtons()*1)+(ELEMENT.ALUMINIUM.getProtons()*2))/10, //Protons + ((ELEMENT.NICKEL.getNeutrons()*6)+(ELEMENT.CHROMIUM.getNeutrons()*1)+(ELEMENT.IRON.getNeutrons()*1)+(ELEMENT.ALUMINIUM.getNeutrons()*2))/10, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.NICKEL, 60), + new MaterialStack(ELEMENT.CHROMIUM, 10), + new MaterialStack(ELEMENT.NIOBIUM, 10), + new MaterialStack(ELEMENT.ALUMINIUM, 20) + }); + + public static final Material STEEL = new Material( + "Steel", //Material Name + new short[]{180, 180, 20, 0}, //Material Colour + ((ELEMENT.CARBON.getMeltingPoint_C()*5)+(ELEMENT.IRON.getMeltingPoint_C()*95))/100, //Melting point in C + 0, //Boiling Point in C + ((ELEMENT.CARBON.getProtons()*5)+(ELEMENT.IRON.getProtons()*95))/100, //Protons + ((ELEMENT.CARBON.getNeutrons()*5)+(ELEMENT.IRON.getNeutrons()*95))/100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.CARBON, 05), + new MaterialStack(ELEMENT.IRON, 95) + }); + + public static final Material ZERON_100 = new Material( + "Zeron-100", //Material Name + new short[]{180, 180, 20, 0}, //Material Colour + (((ELEMENT.CHROMIUM.getMeltingPoint_C()*25)+(ELEMENT.NICKEL.getMeltingPoint_C()*6)+(ELEMENT.COBALT.getMeltingPoint_C()*9)+(ALLOY.STEEL.getMeltingPoint_C()*60))/100), //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.CHROMIUM.getProtons()*25)+(ELEMENT.NICKEL.getProtons()*6)+(ELEMENT.COBALT.getProtons()*9)+(ALLOY.STEEL.getProtons()*60))/100, //Protons + ((ELEMENT.CHROMIUM.getNeutrons()*25)+(ELEMENT.NICKEL.getNeutrons()*6)+(ELEMENT.COBALT.getNeutrons()*9)+(ALLOY.STEEL.getNeutrons()*60))/100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.CHROMIUM, 25), + new MaterialStack(ELEMENT.NICKEL, 6), + new MaterialStack(ELEMENT.COBALT, 9), + new MaterialStack(ALLOY.STEEL, 60) + }); + + public static final Material MARAGING250 = new Material( + "Maraging Steel 250", //Material Name + new short[]{140, 140, 140, 0}, //Material Colour + 1413, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.TITANIUM.getProtons()*5)+(ELEMENT.NICKEL.getProtons()*16)+(ELEMENT.COBALT.getProtons()*9)+(ALLOY.STEEL.getProtons()*70))/100, //Protons + ((ELEMENT.TITANIUM.getNeutrons()*5)+(ELEMENT.NICKEL.getNeutrons()*16)+(ELEMENT.COBALT.getNeutrons()*9)+(ALLOY.STEEL.getNeutrons()*70))/100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.TITANIUM, 5), + new MaterialStack(ELEMENT.NICKEL, 16), + new MaterialStack(ELEMENT.COBALT, 9), + new MaterialStack(ALLOY.STEEL, 70) + }); + + public static final Material MARAGING300 = new Material( + "Maraging Steel 300", //Material Name + new short[]{150, 150, 150, 0}, //Material Colour + 1413, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.TITANIUM.getProtons()*10)+(ELEMENT.NICKEL.getProtons()*21)+(ELEMENT.COBALT.getProtons()*14)+(ALLOY.STEEL.getProtons()*55))/100, //Protons + ((ELEMENT.TITANIUM.getNeutrons()*10)+(ELEMENT.NICKEL.getNeutrons()*21)+(ELEMENT.COBALT.getNeutrons()*14)+(ALLOY.STEEL.getNeutrons()*55))/100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.TITANIUM, 10), + new MaterialStack(ELEMENT.NICKEL, 21), + new MaterialStack(ELEMENT.COBALT, 14), + new MaterialStack(ALLOY.STEEL, 55) + }); + + public static final Material MARAGING350 = new Material( + "Maraging Steel 350", //Material Name + new short[]{160, 160, 160, 0}, //Material Colour + 1413, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.TITANIUM.getProtons()*15)+(ELEMENT.NICKEL.getProtons()*21)+(ELEMENT.COBALT.getProtons()*9)+(ALLOY.STEEL.getProtons()*55))/100, //Protons + ((ELEMENT.TITANIUM.getNeutrons()*15)+(ELEMENT.NICKEL.getNeutrons()*21)+(ELEMENT.COBALT.getNeutrons()*9)+(ALLOY.STEEL.getNeutrons()*55))/100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.TITANIUM, 15), + new MaterialStack(ELEMENT.NICKEL, 21), + new MaterialStack(ELEMENT.COBALT, 9), + new MaterialStack(ALLOY.STEEL, 55) + }); + + public static final Material STELLITE = new Material( + "Stellite", //Material Name + new short[]{129, 75, 120, 0}, //Material Colour + 1310, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.TITANIUM.getProtons()*10)+(ELEMENT.CHROMIUM.getProtons()*35)+(ELEMENT.COBALT.getProtons()*35)+(ELEMENT.MANGANESE.getProtons()*20))/100, //Protons + ((ELEMENT.TITANIUM.getNeutrons()*10)+(ELEMENT.CHROMIUM.getNeutrons()*35)+(ELEMENT.COBALT.getNeutrons()*35)+(ELEMENT.MANGANESE.getNeutrons()*20))/100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.COBALT, 35), + new MaterialStack(ELEMENT.CHROMIUM, 35), + new MaterialStack(ELEMENT.MANGANESE, 20), + new MaterialStack(ELEMENT.TITANIUM, 10) + }); + + public static final Material TALONITE = new Material( + "Talonite", //Material Name + new short[]{228, 75, 120, 0}, //Material Colour + 1454, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.MOLYBDENUM.getProtons()*10)+(ELEMENT.CHROMIUM.getProtons()*30)+(ELEMENT.COBALT.getProtons()*40)+(ELEMENT.PHOSPHORUS.getProtons()*20))/100, //Protons + ((ELEMENT.MOLYBDENUM.getNeutrons()*10)+(ELEMENT.CHROMIUM.getNeutrons()*30)+(ELEMENT.COBALT.getNeutrons()*40)+(ELEMENT.PHOSPHORUS.getNeutrons()*20))/100, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.COBALT, 40), + new MaterialStack(ELEMENT.CHROMIUM, 30), + new MaterialStack(ELEMENT.PHOSPHORUS, 20), + new MaterialStack(ELEMENT.MOLYBDENUM, 10) + }); + + public static final Material HASTELLOY_W = new Material( + "Hastelloy-W", //Material Name + new short[]{218, 165, 32, 0}, //Material Colour + 1350, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.IRON.getProtons()*6)+(ELEMENT.MOLYBDENUM.getProtons()*24)+(ELEMENT.CHROMIUM.getProtons()*5)+(ELEMENT.NICKEL.getProtons()*65))/100, //Protons + ((ELEMENT.IRON.getNeutrons()*6)+(ELEMENT.MOLYBDENUM.getNeutrons()*24)+(ELEMENT.CHROMIUM.getNeutrons()*5)+(ELEMENT.NICKEL.getNeutrons()*65))/100, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.IRON, 06), + new MaterialStack(ELEMENT.MOLYBDENUM, 24), + new MaterialStack(ELEMENT.CHROMIUM, 5), + new MaterialStack(ELEMENT.NICKEL, 65) + }); + + public static final Material HASTELLOY_X = new Material( + "Hastelloy-X", //Material Name + new short[]{255, 193, 37, 0}, //Material Colour + 1350, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.IRON.getProtons()*18)+(ELEMENT.MOLYBDENUM.getProtons()*9)+(ELEMENT.CHROMIUM.getProtons()*22)+(ELEMENT.NICKEL.getProtons()*51))/100, //Protons + ((ELEMENT.IRON.getNeutrons()*18)+(ELEMENT.MOLYBDENUM.getNeutrons()*9)+(ELEMENT.CHROMIUM.getNeutrons()*22)+(ELEMENT.NICKEL.getNeutrons()*51))/100, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.IRON, 18), + new MaterialStack(ELEMENT.MOLYBDENUM, 9), + new MaterialStack(ELEMENT.CHROMIUM, 22), + new MaterialStack(ELEMENT.NICKEL, 51) + }); + + public static final Material HASTELLOY_N = new Material( + "Hastelloy-N", //Material Name + new short[]{236, 213, 48, 0}, //Material Colour + 1350, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.IRON.getProtons()*5)+(ELEMENT.MOLYBDENUM.getProtons()*16)+(ELEMENT.CHROMIUM.getProtons()*7)+(ELEMENT.NICKEL.getProtons()*72))/100, //Protons + ((ELEMENT.IRON.getNeutrons()*5)+(ELEMENT.MOLYBDENUM.getNeutrons()*16)+(ELEMENT.CHROMIUM.getNeutrons()*7)+(ELEMENT.NICKEL.getNeutrons()*72))/100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.IRON, 05), + new MaterialStack(ELEMENT.MOLYBDENUM, 16), + new MaterialStack(ELEMENT.CHROMIUM, 7), + new MaterialStack(ELEMENT.NICKEL, 72) + }); + + public static final Material HASTELLOY_C276 = new Material( + "Hastelloy-C276", //Material Name + new short[]{238, 180, 34, 0}, //Material Colour + 1350, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.COBALT.getProtons()*2)+(ELEMENT.MOLYBDENUM.getProtons()*16)+(ELEMENT.CHROMIUM.getProtons()*16)+(ELEMENT.NICKEL.getProtons()*66))/100, //Protons + ((ELEMENT.COBALT.getNeutrons()*2)+(ELEMENT.MOLYBDENUM.getNeutrons()*16)+(ELEMENT.CHROMIUM.getNeutrons()*16)+(ELEMENT.NICKEL.getNeutrons()*66))/100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.COBALT, 02), + new MaterialStack(ELEMENT.MOLYBDENUM, 16), + new MaterialStack(ELEMENT.CHROMIUM, 16), + new MaterialStack(ELEMENT.NICKEL, 66) + }); + + public static final Material INCOLOY_020 = new Material( + "Incoloy-020", //Material Name + new short[]{101, 81, 71, 0}, //Material Colour + 1425, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.IRON.getProtons()*40)+(ELEMENT.COPPER.getProtons()*4)+(ELEMENT.CHROMIUM.getProtons()*20)+(ELEMENT.NICKEL.getProtons()*36))/100, //Protons + ((ELEMENT.IRON.getNeutrons()*40)+(ELEMENT.COPPER.getNeutrons()*4)+(ELEMENT.CHROMIUM.getNeutrons()*20)+(ELEMENT.NICKEL.getNeutrons()*36))/100, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.IRON, 40), + new MaterialStack(ELEMENT.COPPER, 4), + new MaterialStack(ELEMENT.CHROMIUM, 20), + new MaterialStack(ELEMENT.NICKEL, 36) + }); + + public static final Material INCOLOY_DS = new Material( + "Incoloy-DS", //Material Name + new short[]{71, 101, 81, 0}, //Material Colour + 1425, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.IRON.getProtons()*46)+(ELEMENT.COBALT.getProtons()*18)+(ELEMENT.CHROMIUM.getProtons()*18)+(ELEMENT.NICKEL.getProtons()*18))/100, //Protons + ((ELEMENT.IRON.getNeutrons()*46)+(ELEMENT.COBALT.getNeutrons()*18)+(ELEMENT.CHROMIUM.getNeutrons()*18)+(ELEMENT.NICKEL.getNeutrons()*18))/100, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.IRON, 46), + new MaterialStack(ELEMENT.COBALT, 18), + new MaterialStack(ELEMENT.CHROMIUM, 18), + new MaterialStack(ELEMENT.NICKEL, 18) + }); + + public static final Material INCOLOY_MA956 = new Material( + "Incoloy-MA956", //Material Name + new short[]{81, 71, 101, 0}, //Material Colour + 1425, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.IRON.getProtons()*75)+(ELEMENT.ALUMINIUM.getProtons()*4)+(ELEMENT.CHROMIUM.getProtons()*20)+(ELEMENT.YTTRIUM.getProtons()*1))/100, //Protons + ((ELEMENT.IRON.getNeutrons()*75)+(ELEMENT.ALUMINIUM.getNeutrons()*4)+(ELEMENT.CHROMIUM.getNeutrons()*20)+(ELEMENT.YTTRIUM.getNeutrons()*1))/100, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.IRON, 75), + new MaterialStack(ELEMENT.ALUMINIUM, 4), + new MaterialStack(ELEMENT.CHROMIUM, 20), + new MaterialStack(ELEMENT.YTTRIUM, 1) + }); + + public static final Material TUNGSTEN_CARBIDE = new Material( + "Tungsten Carbide", //Material Name + new short[]{44, 44, 44, 0}, //Material Colour + 3422, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.TUNGSTEN.getProtons()*5)+(ELEMENT.CARBON.getProtons()*5))/10, //Protons + ((ELEMENT.TUNGSTEN.getNeutrons()*5)+(ELEMENT.CARBON.getNeutrons()*5))/10, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.CARBON, 50), + new MaterialStack(ELEMENT.TUNGSTEN, 50) + }); + + public static final Material SILICON_CARBIDE = new Material( + "Silicon Carbide", //Material Name + new short[]{40, 48, 36, 0}, //Material Colour + 1414, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.SILICON.getProtons()*5)+(ELEMENT.CARBON.getProtons()*5))/10, //Protons + ((ELEMENT.SILICON.getNeutrons()*5)+(ELEMENT.CARBON.getNeutrons()*5))/10, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.CARBON, 50), + new MaterialStack(ELEMENT.SILICON, 50) + }); + + public static final Material TANTALUM_CARBIDE = new Material( + "Tantalum Carbide", //Material Name + new short[]{139, 136, 120, 0}, //Material Colour + 2980, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.TANTALUM.getProtons()*5)+(ELEMENT.CARBON.getProtons()*5))/10, //Protons + ((ELEMENT.TANTALUM.getNeutrons()*5)+(ELEMENT.CARBON.getNeutrons()*5))/10, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.CARBON, 50), + new MaterialStack(ELEMENT.TANTALUM, 50) + }); + + public static final Material ZIRCONIUM_CARBIDE = new Material( + "Zirconium Carbide", //Material Name + new short[]{222, 202, 180, 0}, //Material Colour + 1855, //Melting Point in C + 0, //Boiling Point in C + ((ELEMENT.ZIRCONIUM.getProtons()*5)+(ELEMENT.CARBON.getProtons()*5))/10, //Protons + ((ELEMENT.ZIRCONIUM.getNeutrons()*5)+(ELEMENT.CARBON.getNeutrons()*5))/10, //Neutrons + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.CARBON, 50), + new MaterialStack(ELEMENT.ZIRCONIUM, 50) + }); + + public static final Material NIOBIUM_CARBIDE = new Material( + "Niobium Carbide", //Material Name + new short[]{205, 197, 191, 0}, //Mate |
