From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- .../java/goodgenerator/items/DepletedFuelRod.java | 54 - src/main/java/goodgenerator/items/FuelRod.java | 215 --- src/main/java/goodgenerator/items/GGItem.java | 127 ++ .../java/goodgenerator/items/GGItemBlocks.java | 105 ++ src/main/java/goodgenerator/items/GGMaterial.java | 1526 +++++++++++++++++++ .../goodgenerator/items/ItemDepletedFuelRod.java | 54 + src/main/java/goodgenerator/items/ItemFuelRod.java | 216 +++ .../java/goodgenerator/items/MyItemBlocks.java | 105 -- src/main/java/goodgenerator/items/MyItems.java | 127 -- src/main/java/goodgenerator/items/MyMaterial.java | 1527 -------------------- .../java/goodgenerator/items/RadioactiveItem.java | 6 +- 11 files changed, 2031 insertions(+), 2031 deletions(-) delete mode 100644 src/main/java/goodgenerator/items/DepletedFuelRod.java delete mode 100644 src/main/java/goodgenerator/items/FuelRod.java create mode 100644 src/main/java/goodgenerator/items/GGItem.java create mode 100644 src/main/java/goodgenerator/items/GGItemBlocks.java create mode 100644 src/main/java/goodgenerator/items/GGMaterial.java create mode 100644 src/main/java/goodgenerator/items/ItemDepletedFuelRod.java create mode 100644 src/main/java/goodgenerator/items/ItemFuelRod.java delete mode 100644 src/main/java/goodgenerator/items/MyItemBlocks.java delete mode 100644 src/main/java/goodgenerator/items/MyItems.java delete mode 100644 src/main/java/goodgenerator/items/MyMaterial.java (limited to 'src/main/java/goodgenerator/items') diff --git a/src/main/java/goodgenerator/items/DepletedFuelRod.java b/src/main/java/goodgenerator/items/DepletedFuelRod.java deleted file mode 100644 index 308f149933..0000000000 --- a/src/main/java/goodgenerator/items/DepletedFuelRod.java +++ /dev/null @@ -1,54 +0,0 @@ -package goodgenerator.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; - -import ic2.api.item.IBoxable; -import ic2.api.reactor.IReactor; -import ic2.api.reactor.IReactorComponent; - -public class DepletedFuelRod extends RadioactiveItem implements IReactorComponent, IBoxable { - - public DepletedFuelRod(String name, String[] tooltip, CreativeTabs Tab, int Rad) { - super(name, tooltip, Tab, Rad); - } - - @Override - public boolean canBeStoredInToolbox(ItemStack itemStack) { - return true; - } - - @Override - public void processChamber(IReactor iReactor, ItemStack itemStack, int i, int i1, boolean b) {} - - @Override - public boolean acceptUraniumPulse(IReactor iReactor, ItemStack itemStack, ItemStack itemStack1, int i, int i1, - int i2, int i3, boolean b) { - return false; - } - - @Override - public boolean canStoreHeat(IReactor iReactor, ItemStack itemStack, int i, int i1) { - return false; - } - - @Override - public int getMaxHeat(IReactor iReactor, ItemStack itemStack, int i, int i1) { - return 0; - } - - @Override - public int getCurrentHeat(IReactor iReactor, ItemStack itemStack, int i, int i1) { - return 0; - } - - @Override - public int alterHeat(IReactor iReactor, ItemStack itemStack, int i, int i1, int i2) { - return 0; - } - - @Override - public float influenceExplosion(IReactor iReactor, ItemStack itemStack) { - return 0; - } -} diff --git a/src/main/java/goodgenerator/items/FuelRod.java b/src/main/java/goodgenerator/items/FuelRod.java deleted file mode 100644 index 00ca8b3491..0000000000 --- a/src/main/java/goodgenerator/items/FuelRod.java +++ /dev/null @@ -1,215 +0,0 @@ -package goodgenerator.items; - -import static goodgenerator.util.DescTextLocalization.addText; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.StatCollector; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.util.GT_Utility; -import ic2.api.item.IBoxable; -import ic2.api.reactor.IReactor; -import ic2.api.reactor.IReactorComponent; -import ic2.core.util.StackUtil; -import ic2.core.util.Util; - -public class FuelRod extends RadioactiveItem implements IReactorComponent, IBoxable { - - private final int numberOfCells; - private final int maxDmg; - private final float Power; - private final int Heat; - private float HeatBonus = 0; - private final ItemStack result; - - public FuelRod(String aName, int aCells, int aEUt, int aHeat, int aRads, int aDuration, ItemStack aResult, - CreativeTabs Tab) { - super(aName, Tab, aRads); - this.setMaxStackSize(64); - this.numberOfCells = aCells; - this.maxDmg = aDuration; - this.Power = (float) aEUt / 25.0F; - this.result = aResult; - this.Heat = aHeat; - setMaxDamage(100); - } - - public FuelRod(String aName, int aCells, int aEUt, int aHeat, int aRads, int aDuration, float aHeatBonus, - ItemStack aResult, CreativeTabs Tab) { - super(aName, Tab, aRads); - this.setMaxStackSize(64); - this.numberOfCells = aCells; - this.maxDmg = aDuration; - this.Power = (float) aEUt / 25.0F; - this.result = aResult; - this.Heat = aHeat; - this.HeatBonus = aHeatBonus; - setMaxDamage(100); - } - - public void processChamber(IReactor reactor, ItemStack stack, int x, int y, boolean heatRun) { - if (reactor.produceEnergy()) { - for (int iteration = 0; iteration < this.numberOfCells; ++iteration) { - int pulses = 1 + this.numberOfCells / 2; - int heat; - if (!heatRun) { - for (heat = 0; heat < pulses; ++heat) { - this.acceptUraniumPulse(reactor, stack, stack, x, y, x, y, heatRun); - } - checkPulseable(reactor, x - 1, y, stack, x, y, heatRun); - checkPulseable(reactor, x + 1, y, stack, x, y, heatRun); - checkPulseable(reactor, x, y - 1, stack, x, y, heatRun); - checkPulseable(reactor, x, y + 1, stack, x, y, heatRun); - } else { - pulses += checkPulseable(reactor, x - 1, y, stack, x, y, heatRun) - + checkPulseable(reactor, x + 1, y, stack, x, y, heatRun) - + checkPulseable(reactor, x, y - 1, stack, x, y, heatRun) - + checkPulseable(reactor, x, y + 1, stack, x, y, heatRun); - heat = sumUp(pulses) * this.Heat; - ArrayList heatAcceptors = new ArrayList<>(); - this.checkHeatAcceptor(reactor, x - 1, y, heatAcceptors); - this.checkHeatAcceptor(reactor, x + 1, y, heatAcceptors); - this.checkHeatAcceptor(reactor, x, y - 1, heatAcceptors); - this.checkHeatAcceptor(reactor, x, y + 1, heatAcceptors); - - while (heatAcceptors.size() > 0 && heat > 0) { - int dheat = heat / heatAcceptors.size(); - heat -= dheat; - dheat = ((IReactorComponent) heatAcceptors.get(0).stack.getItem()).alterHeat( - reactor, - heatAcceptors.get(0).stack, - heatAcceptors.get(0).x, - heatAcceptors.get(0).y, - dheat); - heat += dheat; - heatAcceptors.remove(0); - } - - if (heat > 0) { - reactor.addHeat(heat); - } - } - } - if (this.getCustomDamage(stack) >= this.getMaxCustomDamage(stack) - 1) { - reactor.setItemAt(x, y, GT_Utility.copyAmount(1, result)); - } else if (heatRun) { - this.applyCustomDamage(stack, 1, null); - } - } - } - - private static int checkPulseable(IReactor reactor, int x, int y, ItemStack me, int mex, int mey, boolean heatrun) { - ItemStack other = reactor.getItemAt(x, y); - return other != null && other.getItem() instanceof IReactorComponent - && ((IReactorComponent) other.getItem()).acceptUraniumPulse(reactor, other, me, x, y, mex, mey, heatrun) ? 1 - : 0; - } - - private static int sumUp(int x) { - return (x * x + x) / 2; - } - - private void checkHeatAcceptor(IReactor reactor, int x, int y, ArrayList heatAcceptors) { - ItemStack thing = reactor.getItemAt(x, y); - if (thing != null && thing.getItem() instanceof IReactorComponent - && ((IReactorComponent) thing.getItem()).canStoreHeat(reactor, thing, x, y)) { - heatAcceptors.add(new ItemStackCoord(thing, x, y)); - } - } - - public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY, - int pulseX, int pulseY, boolean heatrun) { - if (!heatrun) { - reactor.addOutput(Power * (1 + HeatBonus * ((float) reactor.getHeat() / (float) reactor.getMaxHeat()))); - } - return true; - } - - public boolean canStoreHeat(IReactor reactor, ItemStack yourStack, int x, int y) { - return false; - } - - public int getMaxHeat(IReactor reactor, ItemStack yourStack, int x, int y) { - return 0; - } - - public int getCurrentHeat(IReactor reactor, ItemStack yourStack, int x, int y) { - return 0; - } - - public int alterHeat(IReactor reactor, ItemStack yourStack, int x, int y, int heat) { - return heat; - } - - public float influenceExplosion(IReactor reactor, ItemStack yourStack) { - return (float) (2 * this.numberOfCells); - } - - @Override - public boolean canBeStoredInToolbox(ItemStack itemStack) { - return true; - } - - private static class ItemStackCoord { - - public ItemStack stack; - public int x; - public int y; - - public ItemStackCoord(ItemStack stack1, int x1, int y1) { - this.stack = stack1; - this.x = x1; - this.y = y1; - } - } - - public int getCustomDamage(ItemStack stack) { - NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); - return nbt.getInteger("advDmg"); - } - - public int getMaxCustomDamage(ItemStack stack) { - return this.maxDmg; - } - - public void setCustomDamage(ItemStack stack, int damage) { - NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); - nbt.setInteger("advDmg", damage); - int maxStackDamage = stack.getMaxDamage(); - if (maxStackDamage > 2) { - stack.setItemDamage(1 + (int) Util.map(damage, this.maxDmg, maxStackDamage - 2)); - } - } - - public boolean applyCustomDamage(ItemStack stack, int damage, EntityLivingBase src) { - this.setCustomDamage(stack, this.getCustomDamage(stack) + damage); - return true; - } - - @SideOnly(Side.CLIENT) - @SuppressWarnings("unchecked") - @Override - public void addInformation(ItemStack item, EntityPlayer player, List tooltip, boolean p_77624_4_) { - super.addInformation(item, player, tooltip, p_77624_4_); - tooltip.add( - String.format( - addText("fuelrod.tooltip", 1)[0], - getMaxCustomDamage(item) - getCustomDamage(item), - getMaxCustomDamage(item))); - double tMut = this.Heat / 4.0; - if (this.Heat == 4) { - tooltip.add(StatCollector.translateToLocal("fuelrodheat.tooltip.0")); - } else { - tooltip.add(String.format(StatCollector.translateToLocal("fuelrodheat.tooltip.1"), tMut)); - } - if (this.HeatBonus != 0) tooltip.add(StatCollector.translateToLocal("fuelrodheat.tooltip.2")); - } -} diff --git a/src/main/java/goodgenerator/items/GGItem.java b/src/main/java/goodgenerator/items/GGItem.java new file mode 100644 index 0000000000..627cf1c59b --- /dev/null +++ b/src/main/java/goodgenerator/items/GGItem.java @@ -0,0 +1,127 @@ +package goodgenerator.items; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import goodgenerator.main.GoodGenerator; + +public class GGItem extends Item { + + @SideOnly(Side.CLIENT) + protected IIcon[] texture; + + private String tex; + private String[] textureNames; + private final String Name; + private List tooltips = new ArrayList<>(); + private List tooltipses = new ArrayList<>(); + + public GGItem(String name, CreativeTabs Tab) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.tex = name; + this.Name = name; + } + + public GGItem(String name, CreativeTabs Tab, String[] textures) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.setHasSubtypes(true); + this.textureNames = textures; + this.Name = name; + } + + public GGItem(String name, String[] tooltip, CreativeTabs Tab, String[] textures) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.setHasSubtypes(true); + this.textureNames = textures; + this.Name = name; + this.tooltipses = Arrays.asList(tooltip); + } + + public GGItem(String name, String tooltip, CreativeTabs Tab) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.tex = name; + this.tooltips.add(tooltip); + this.Name = name; + } + + public GGItem(String name, String[] tooltip, CreativeTabs Tab) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.tex = name; + this.tooltips = Arrays.asList(tooltip); + this.Name = name; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + if (this.texture == null || this.texture.length < 1) return this.itemIcon; + else return meta < this.texture.length ? this.texture[meta] : this.texture[0]; + } + + @Override + public int getMetadata(int aMeta) { + return aMeta; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconRegister) { + if (this.textureNames == null || this.textureNames.length < 1) { + this.itemIcon = iconRegister.registerIcon(GoodGenerator.MOD_ID + ":" + this.tex); + } else { + this.texture = new IIcon[this.textureNames.length]; + for (int i = 0; i < this.textureNames.length; ++i) { + this.texture[i] = iconRegister.registerIcon(this.textureNames[i]); + } + } + } + + @Override + public String getUnlocalizedName(ItemStack p_77667_1_) { + if (this.textureNames == null || this.textureNames.length < 1) { + return "item." + this.Name; + } else { + return "item." + this.Name + "." + p_77667_1_.getItemDamage(); + } + } + + @Override + @SideOnly(Side.CLIENT) + @SuppressWarnings("unchecked") + public void getSubItems(Item item, CreativeTabs tab, List list) { + if (this.texture == null || this.texture.length < 1) list.add(new ItemStack(item, 1, 0)); + else { + for (int i = 0; i < this.texture.length; ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + } + + @SideOnly(Side.CLIENT) + @SuppressWarnings({ "unchecked" }) + public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { + if (tooltips.size() > 0) { + p_77624_3_.addAll(tooltips); + } + if (tooltipses.size() > 0) { + int meta = p_77624_1_.getItemDamage(); + if (tooltipses.size() - 1 < meta) meta = tooltipses.size() - 1; + p_77624_3_.add(tooltipses.get(meta)); + } + } +} diff --git a/src/main/java/goodgenerator/items/GGItemBlocks.java b/src/main/java/goodgenerator/items/GGItemBlocks.java new file mode 100644 index 0000000000..2d13d7a7af --- /dev/null +++ b/src/main/java/goodgenerator/items/GGItemBlocks.java @@ -0,0 +1,105 @@ +package goodgenerator.items; + +import static goodgenerator.loader.Loaders.essentiaCell; +import static goodgenerator.loader.Loaders.yottaFluidTankCell; +import static goodgenerator.util.CharExchanger.tierName; + +import java.util.Arrays; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import goodgenerator.blocks.regularBlock.BlockTEContainer; +import goodgenerator.blocks.tileEntity.MTEEssentiaOutputHatch; +import goodgenerator.main.GoodGenerator; +import goodgenerator.util.CharExchanger; +import goodgenerator.util.DescTextLocalization; +import gregtech.api.util.GTLanguageManager; + +public class GGItemBlocks extends ItemBlock { + + private final String mNoMobsToolTip = GTLanguageManager + .addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block"); + private final String mNoTileEntityToolTip = GTLanguageManager + .addStringLocalization("gt.notileentityinthisblock", "This is NOT a TileEntity!"); + + public GGItemBlocks(Block block) { + super(block); + this.setMaxDamage(0); + this.setHasSubtypes(true); + this.setCreativeTab(GoodGenerator.GG); + } + + @Override + public int getMetadata(int aMeta) { + return aMeta; + } + + @Override + public String getUnlocalizedName(ItemStack aStack) { + return this.field_150939_a.getUnlocalizedName() + "." + this.getDamage(aStack); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(ItemStack stack, int pass) { + return this.field_150939_a.getIcon(0, stack.getItemDamage()); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { + return this.getIcon(stack, renderPass); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) { + return this.field_150939_a.getIcon(0, p_77618_2_); + } + + @Override + @SuppressWarnings({ "unchecked" }) + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer playerIn, List tooltip, boolean advanced) { + if (stack == null) return; + tooltip.add(mNoMobsToolTip); + if (Block.getBlockFromItem(stack.getItem()) instanceof BlockTEContainer) { + BlockTEContainer tile = (BlockTEContainer) Block.getBlockFromItem(stack.getItem()); + if (tile.getIndex() == 1) + tooltip.addAll(Arrays.asList(DescTextLocalization.addText("EssentiaHatch.tooltip", 2))); + if (tile.getIndex() == 2) { + tooltip.add(StatCollector.translateToLocal("EssentiaOutputHatch.tooltip.0")); + tooltip.add( + StatCollector.translateToLocal("EssentiaOutputHatch.tooltip.1") + " " + + MTEEssentiaOutputHatch.CAPACITY); + } + } else { + tooltip.add(mNoTileEntityToolTip); + } + + if (Block.getBlockFromItem(stack.getItem()) + .equals(yottaFluidTankCell)) { + StringBuilder cap = new StringBuilder(); + cap.append(" 1000000"); + for (int i = 0; i < stack.getItemDamage(); i++) cap.append("00"); + cap.append(" L"); + tooltip.add( + StatCollector.translateToLocal("YOTTankCell.tooltip.0") + CharExchanger.formatNumber(cap.toString())); + tooltip.add(StatCollector.translateToLocal("YOTTankCell.tooltip.1")); + } + + if (Block.getBlockFromItem(stack.getItem()) + .equals(essentiaCell)) { + tooltip + .add(StatCollector.translateToLocal("hatchTier.tooltip.0") + " " + tierName[stack.getItemDamage() + 4]); + } + } +} diff --git a/src/main/java/goodgenerator/items/GGMaterial.java b/src/main/java/goodgenerator/items/GGMaterial.java new file mode 100644 index 0000000000..aeade9eb00 --- /dev/null +++ b/src/main/java/goodgenerator/items/GGMaterial.java @@ -0,0 +1,1526 @@ +package goodgenerator.items; + +import static bartworks.util.BWUtil.subscriptNumbers; +import static gregtech.api.enums.Materials.*; + +import bartworks.system.material.Werkstoff; +import bartworks.system.material.WerkstoffLoader; +import bartworks.util.Pair; +import goodgenerator.util.CharExchanger; +import gregtech.api.enums.TextureSet; + +@SuppressWarnings({ "unchecked" }) +public class GGMaterial implements Runnable { + + protected static final int OffsetID = 10001; + + // Uranium Based Fuel Line + public static final Werkstoff graphiteUraniumMixture = new Werkstoff( + new short[] { 0x3a, 0x77, 0x3d }, + "Graphite-Uranium Mixture", + subscriptNumbers("C3U"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addMixerRecipes() + .onlyDust(), + OffsetID, + TextureSet.SET_DULL, + new Pair<>(Graphite, 3), + new Pair<>(Uranium, 1)); + + public static final Werkstoff uraniumBasedLiquidFuel = new Werkstoff( + new short[] { 0x00, 0xff, 0x00 }, + "Uranium Based Liquid Fuel", + subscriptNumbers("U36K8Qt4Rn"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 1, + TextureSet.SET_FLUID); + + public static final Werkstoff uraniumBasedLiquidFuelExcited = new Werkstoff( + new short[] { 0x00, 0xff, 0x00 }, + "Uranium Based Liquid Fuel (Excited State)", + subscriptNumbers("*(U36K8Qt4Rn)*"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 2, + TextureSet.SET_FLUID); + + public static final Werkstoff uraniumBasedLiquidFuelDepleted = new Werkstoff( + new short[] { 0x6e, 0x8b, 0x3d }, + "Uranium Based Liquid Fuel (Depleted)", + subscriptNumbers("Pb?Bi?Ba?Xe?"), + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 3, + TextureSet.SET_FLUID); + + // Thorium Based Fuel + public static final Werkstoff uraniumCarbideThoriumMixture = new Werkstoff( + new short[] { 0x16, 0x32, 0x07 }, + "Uranium Carbide-Thorium Mixture", + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addMixerRecipes() + .onlyDust(), + OffsetID + 4, + TextureSet.SET_DULL, + new Pair<>(Thorium, 11), + new Pair<>(WerkstoffLoader.Thorium232, 1), + new Pair<>(Uranium235, 1), + new Pair<>(Carbon, 3)); + + public static final Werkstoff thoriumBasedLiquidFuel = new Werkstoff( + new short[] { 0x50, 0x32, 0x66 }, + "Thorium Based Liquid Fuel", + subscriptNumbers("Th432Li4D2Hg"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 5, + TextureSet.SET_FLUID); + + public static final Werkstoff thoriumBasedLiquidFuelExcited = new Werkstoff( + new short[] { 0x50, 0x32, 0x66 }, + "Thorium Based Liquid Fuel (Excited State)", + subscriptNumbers("*(Th432Li4D2Hg)*"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 6, + TextureSet.SET_FLUID); + + public static final Werkstoff thoriumBasedLiquidFuelDepleted = new Werkstoff( + new short[] { 0x7d, 0x6c, 0x8a }, + "Thorium Based Liquid Fuel (Depleted)", + subscriptNumbers("Th?Pr?B?In?"), + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 7, + TextureSet.SET_FLUID); + + // Plutonium Based Fuel + public static final Werkstoff plutoniumOxideUraniumMixture = new Werkstoff( + new short[] { 0xd1, 0x1f, 0x4a }, + "Plutonium Oxide-Uranium Mixture", + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addMixerRecipes() + .onlyDust(), + OffsetID + 8, + TextureSet.SET_SHINY, + new Pair<>(Plutonium, 10), + new Pair<>(Oxygen, 12), + new Pair<>(Uranium, 2), + new Pair<>(Carbon, 8)); + + public static final Werkstoff plutoniumBasedLiquidFuel = new Werkstoff( + new short[] { 0xef, 0x15, 0x15 }, + "Plutonium Based Liquid Fuel", + subscriptNumbers("Pu45Nt8Cs16Nq2"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 9, + TextureSet.SET_FLUID); + + public static final Werkstoff plutoniumBasedLiquidFuelExcited = new Werkstoff( + new short[] { 0xef, 0x15, 0x15 }, + "Plutonium Based Liquid Fuel (Excited State)", + subscriptNumbers("*(Pu45Nt8Cs16Nq2)*"), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 10, + TextureSet.SET_FLUID); + + public static final Werkstoff plutoniumBasedLiquidFuelDepleted = new Werkstoff( + new short[] { 0x67, 0x19, 0x19 }, + "Plutonium Based Liquid Fuel (Depleted)", + subscriptNumbers("Tn?Ce?Au?Kr?"), + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 11, + TextureSet.SET_FLUID); + + // Thorium-233 + public static final Werkstoff oxalate = new Werkstoff( + new short[] { 0x79, 0xd8, 0x55 }, + "Oxalate", + Werkstoff.Types.BIOLOGICAL, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 12, + TextureSet.SET_FLUID, + new Pair<>(Hydrogen, 2), + new Pair<>(Carbon, 2), + new Pair<>(Oxygen, 4)); + + public static final Werkstoff vanadiumPentoxide = new Werkstoff( + new short[] { 0xde, 0x8d, 0x12 }, + "Vanadium Pentoxide", + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 13, + TextureSet.SET_SHINY, + new Pair<>(Vanadium, 2), + new Pair<>(Oxygen, 5)); + + public static final Werkstoff thoriumNitrate = new Werkstoff( + new short[] { 0xba, 0xe8, 0x26 }, + "Thorium Nitrate", + subscriptNumbers("Th(NO3)4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 14, + TextureSet.SET_DULL); + + public static final Werkstoff thoriumOxalate = new Werkstoff( + new short[] { 0x50, 0x63, 0x13 }, + "Thorium Oxalate", + subscriptNumbers("Th(C2O4)2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 15, + TextureSet.SET_DULL); + + public static final Werkstoff thoriumHydroxide = new Werkstoff( + new short[] { 0x92, 0xae, 0x89 }, + "Thorium Hydroxide", + subscriptNumbers("Th(OH)4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 16, + TextureSet.SET_SHINY); + + public static final Werkstoff sodiumOxalate = new Werkstoff( + new short[] { 0xe4, 0xf8, 0x9b }, + "Sodium Oxalate", + subscriptNumbers("Na2C2O4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 17, + TextureSet.SET_DULL); + + public static final Werkstoff thoriumTetrachloride = new Werkstoff( + new short[] { 0x13, 0x7c, 0x16 }, + "Thorium Tetrachloride", + subscriptNumbers("ThCl4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 18, + TextureSet.SET_FLUID); + + public static final Werkstoff thoriumTetrafluoride = new Werkstoff( + new short[] { 0x15, 0x6a, 0x6a }, + "Thorium Tetrafluoride", + subscriptNumbers("ThF4"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 19, + TextureSet.SET_FLUID); + + public static final Werkstoff thorium232Tetrafluoride = new Werkstoff( + new short[] { 0x15, 0x6a, 0x6a }, + "Thorium-232 Tetrafluoride", + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 20, + TextureSet.SET_FLUID, + new Pair<>(WerkstoffLoader.Thorium232, 1), + new Pair<>(Fluorine, 4)); + + // Atomic Separation Catalyst + public static final Werkstoff orundum = new Werkstoff( + new short[] { 0xcd, 0x26, 0x26 }, + "Orundum", + "Or", + new Werkstoff.Stats().setProtons(120) + .setMass(300), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().addGems() + .addMolten(), + OffsetID + 22, + TextureSet.SET_DIAMOND); + + public static final Werkstoff atomicSeparationCatalyst = new Werkstoff( + new short[] { 0xe8, 0x5e, 0x0c }, + "Atomic Separation Catalyst", + "the melting core...", + new Werkstoff.Stats().setMeltingPoint(5000), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addMolten() + .addMetalItems() + .addSimpleMetalWorkingItems() + .addCraftingMetalWorkingItems() + .addMultipleIngotMetalWorkingItems(), + OffsetID + 21, + TextureSet.SET_SHINY, + new Pair<>(GGMaterial.orundum, 2), + new Pair<>(Plutonium, 1), + new Pair<>(Naquadah, 2)); + + // Naquadah Fuel Rework + public static final Werkstoff extremelyUnstableNaquadah = new Werkstoff( + new short[] { 0x06, 0x26, 0x05 }, + "Extremely Unstable Naquadah", + "Nq" + CharExchanger.shifter(9734), + new Werkstoff.Stats().setMeltingPoint(7000) + .setBlastFurnace(true) + .setProtons(200) + .setMass(450) + .setRadioactive(true) + .setDurOverride(180224) + .setSpeedOverride(100f) + .setQualityOverride((byte) 11), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addMolten() + .addMetalItems() + .addSimpleMetalWorkingItems() + .addCraftingMetalWorkingItems() + .addMultipleIngotMetalWorkingItems(), + OffsetID + 23, + TextureSet.SET_SHINY); + + public static final Werkstoff lightNaquadahFuel = new Werkstoff( + new short[] { 92, 203, 92 }, + "Light Naquadah Fuel", + "far from enough", + new Werkstoff.Stats().setToxic(true) + .setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 24, + TextureSet.SET_FLUID); + + public static final Werkstoff heavyNaquadahFuel = new Werkstoff( + new short[] { 54, 255, 54 }, + "Heavy Naquadah Fuel", + "still need processing", + new Werkstoff.Stats().setToxic(true) + .setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 25, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahGas = new Werkstoff( + new short[] { 93, 219, 0 }, + "Naquadah Gas", + "Who need it?", + new Werkstoff.Stats().setToxic(true) + .setRadioactive(true) + .setGas(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 26, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahAsphalt = new Werkstoff( + new short[] { 5, 37, 5 }, + "Naquadah Asphalt", + "It will damage the reactor.", + new Werkstoff.Stats().setToxic(true) + .setRadioactive(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 27, + TextureSet.SET_FLUID); + + public static final Werkstoff ether = new Werkstoff( + new short[] { 0xeb, 0xbc, 0x2f }, + "Ether", + subscriptNumbers("CH3CH2OCH2CH3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 28, + TextureSet.SET_FLUID, + new Pair<>(Carbon, 4), + new Pair<>(Hydrogen, 10), + new Pair<>(Oxygen, 1)); + + public static final Werkstoff antimonyTrichloride = new Werkstoff( + new short[] { 0x0f, 0xdc, 0x34 }, + "Antimony Trichloride Solution", + subscriptNumbers("SbCl3"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 29, + TextureSet.SET_FLUID); + + public static final Werkstoff antimonyPentachlorideSolution = new Werkstoff( + new short[] { 0x15, 0x93, 0x2c }, + "Antimony Pentachloride Solution", + subscriptNumbers("SbCl5"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 30, + TextureSet.SET_FLUID); + + public static final Werkstoff antimonyPentachloride = new Werkstoff( + new short[] { 0x15, 0x93, 0x2c }, + "Antimony Pentachloride", + subscriptNumbers("SbCl5"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 31, + TextureSet.SET_FLUID); + + public static final Werkstoff antimonyPentafluoride = new Werkstoff( + new short[] { 0x16, 0xd5, 0xe2 }, + "Antimony Pentafluoride", + subscriptNumbers("SbF5"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 32, + TextureSet.SET_FLUID); + + public static final Werkstoff fluoroantimonicAcid = new Werkstoff( + new short[] { 0x16, 0xd5, 0xe2 }, + "Fluoroantimonic Acid", + subscriptNumbers("HSbF6"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 33, + TextureSet.SET_FLUID); + + public static final Werkstoff radioactiveSludge = new Werkstoff( + new short[] { 0xb3, 0x49, 0x1e }, + "Radioactive Sludge", + ">>> DANGER <<<", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 34, + TextureSet.SET_DULL); + + public static final Werkstoff acidNaquadahEmulsion = new Werkstoff( + new short[] { 0x25, 0x22, 0x22 }, + "Acid Naquadah Emulsion", + "??Nq??H" + CharExchanger.shifter(8314), + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 35, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahEmulsion = new Werkstoff( + new short[] { 0x4a, 0x46, 0x45 }, + "Naquadah Emulsion", + "??Nq??", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 36, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahSolution = new Werkstoff( + new short[] { 0x84, 0x81, 0x80 }, + "Naquadah Solution", + "~Nq~", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 37, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkI = new Werkstoff( + new short[] { 0x62, 0x5c, 0x5b }, + "Naquadah Based Liquid Fuel MkI", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 38, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkIDepleted = new Werkstoff( + new short[] { 0xcb, 0xc3, 0xc1 }, + "Naquadah Based Liquid Fuel MkI (Depleted)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 39, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkII = new Werkstoff( + new short[] { 0x52, 0x4e, 0x4d }, + "Naquadah Based Liquid Fuel MkII", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 40, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkIIDepleted = new Werkstoff( + new short[] { 0xb5, 0xb0, 0xae }, + "Naquadah Based Liquid Fuel MkII (Depleted)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 41, + TextureSet.SET_FLUID); + /* These materials will be enable when they are removed in GregTech */ + /* + * public static final Werkstoff praseodymium = new Werkstoff( new short[]{0xff,0xff,0xff}, "praseodymium", "Pr", + * new Werkstoff.Stats(), Werkstoff.Types.ELEMENT, new + * Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), OffsetID + 42, + * TextureSet.SET_METALLIC ); public static final Werkstoff rubidium = new Werkstoff( new short[]{0xff,0x2a,0x00}, + * "rubidium", "Rb", new Werkstoff.Stats(), Werkstoff.Types.ELEMENT, new + * Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), OffsetID + 43, + * TextureSet.SET_SHINY ); public static final Werkstoff thulium = new Werkstoff( new short[]{0xff,0xff,0xff}, + * "Thulium", "Tm", new Werkstoff.Stats(), Werkstoff.Types.ELEMENT, new + * Werkstoff.GenerationFeatures().disable().onlyDust().addMolten().addMetalItems(), OffsetID + 44, + * TextureSet.SET_METALLIC ); + */ + public static final Werkstoff naquadahBasedFuelMkIII = new Werkstoff( + new short[] { 0x29, 0x22, 0x21 }, + "Naquadah Based Liquid Fuel MkIII", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 45, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkIIIDepleted = new Werkstoff( + new short[] { 0x66, 0x40, 0x38 }, + "Naquadah Based Liquid Fuel MkIII (Depleted)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 46, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkIV = new Werkstoff( + new short[] { 0x0e, 0x0c, 0x0c }, + "Naquadah Based Liquid Fuel MkIV", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 47, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkIVDepleted = new Werkstoff( + new short[] { 0x8e, 0x34, 0x22 }, + "Naquadah Based Liquid Fuel MkIV (Depleted)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 48, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkV = new Werkstoff( + new short[] { 0x00, 0x00, 0x00 }, + "Naquadah Based Liquid Fuel MkV", + "THE END", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 49, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkVDepleted = new Werkstoff( + new short[] { 0xff, 0xff, 0xff }, + "Naquadah Based Liquid Fuel MkV (Depleted)", + "THE END (literally)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 50, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkVI = new Werkstoff( + new short[] { 0x30, 0x00, 0x00 }, + "Naquadah Based Liquid Fuel MkVI", + "THE FUTURE", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 115, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahBasedFuelMkVIDepleted = new Werkstoff( + new short[] { 0x99, 0x33, 0x33 }, + "Naquadah Based Liquid Fuel MkVI (Depleted)", + "THE FUTURE (achieved)", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 116, + TextureSet.SET_FLUID); + + public static final Werkstoff zincChloride = new Werkstoff( + new short[] { 0x73, 0xa5, 0xfc }, + "Zinc Chloride", + subscriptNumbers("ZnCl2"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 51, + TextureSet.SET_SHINY, + new Pair<>(Zinc, 1), + new Pair<>(Chlorine, 2)); + + public static final Werkstoff zincThoriumAlloy = new Werkstoff( + new short[] { 0x12, 0x34, 0x56 }, + "Zn-Th Alloy", + subscriptNumbers("ZnTh"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust() + .addMolten() + .addMetalItems(), + OffsetID + 52, + TextureSet.SET_SHINY, + new Pair<>(Zinc, 1), + new Pair<>(Thorium, 1)); + + // Naquadah Rework Materials + public static final Werkstoff naquadahEarth = new Werkstoff( + new short[] { 0x4c, 0x4c, 0x4c }, + "Naquadah Oxide Mixture", + subscriptNumbers("??NqTiGaAd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures(), + OffsetID + 53, + TextureSet.SET_METALLIC); + + public static final Werkstoff titaniumTrifluoride = new Werkstoff( + new short[] { 0xc0, 0x92, 0xa8 }, + "Titanium Trifluoride", + subscriptNumbers("TiF3"), + new Werkstoff.Stats().setElektrolysis(false), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 54, + TextureSet.SET_METALLIC, + new Pair<>(Titanium, 1), + new Pair<>(Fluorine, 3)); + + public static final Werkstoff lowQualityNaquadahEmulsion = new Werkstoff( + new short[] { 0x4c, 0x4c, 0x4c }, + "Low Quality Naquadah Emulsion", + subscriptNumbers("??NqGaAd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 55, + TextureSet.SET_FLUID); + + public static final Werkstoff galliumHydroxide = new Werkstoff( + new short[] { 0xa6, 0xa6, 0xa6 }, + "Gallium Hydroxide", + subscriptNumbers("Ga(OH)3"), + new Werkstoff.Stats().setElektrolysis(false), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 56, + TextureSet.SET_DULL, + new Pair<>(Gallium, 1), + new Pair<>(Oxygen, 3), + new Pair<>(Hydrogen, 3)); + + public static final Werkstoff lowQualityNaquadahSolution = new Werkstoff( + new short[] { 0x71, 0x62, 0x62 }, + "Low Quality Naquadah Solution", + subscriptNumbers("~??NqAd??~"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 57, + TextureSet.SET_FLUID); + + public static final Werkstoff towEthyl1Hexanol = new Werkstoff( + new short[] { 0x80, 0xb5, 0x57 }, + "2-Ethyl-1-Hexanol", + subscriptNumbers("C8H18O"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 58, + TextureSet.SET_FLUID, + new Pair<>(Carbon, 8), + new Pair<>(Oxygen, 1), + new Pair<>(Hydrogen, 18)); + + public static final Werkstoff P507 = new Werkstoff( + new short[] { 0x29, 0xc2, 0x2a }, + "P-507", + subscriptNumbers("(C8H17)2PO3H"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 59, + TextureSet.SET_FLUID, + new Pair<>(Carbon, 16), + new Pair<>(Phosphorus, 1), + new Pair<>(Oxygen, 3), + new Pair<>(Hydrogen, 35)); + + public static final Werkstoff naquadahAdamantiumSolution = new Werkstoff( + new short[] { 0x3d, 0x38, 0x38 }, + "Naquadah-Adamantium Solution", + subscriptNumbers("~NqAd~"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 60, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahRichSolution = new Werkstoff( + new short[] { 0x33, 0x33, 0x33 }, + "Naquadah-Rich Solution", + subscriptNumbers("~?Nq?~"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 61, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadahine = new Werkstoff( + new short[] { 0x33, 0x33, 0x33 }, + "Naquadahine", + subscriptNumbers("NqO2"), + new Werkstoff.Stats().setElektrolysis(false), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 62, + TextureSet.SET_METALLIC, + new Pair<>(Naquadah, 1), + new Pair<>(Oxygen, 2)); + + public static final Werkstoff fluorineRichWasteLiquid = new Werkstoff( + new short[] { 0x13, 0x68, 0x62 }, + "Fluorine-Rich Waste Liquid", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 63, + TextureSet.SET_FLUID); + + public static final Werkstoff wasteLiquid = new Werkstoff( + new short[] { 0x14, 0x1c, 0x68 }, + "Waste Liquid", + new Werkstoff.Stats().setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 64, + TextureSet.SET_FLUID); + + public static final Werkstoff adamantine = new Werkstoff( + new short[] { 0xb7, 0xb7, 0xb7 }, + "Adamantine", + subscriptNumbers("Ad2O3"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 65, + TextureSet.SET_DULL, + new Pair<>(Adamantium, 2), + new Pair<>(Oxygen, 3)); + + public static final Werkstoff enrichedNaquadahEarth = new Werkstoff( + new short[] { 0x82, 0x68, 0x68 }, + "Enriched-Naquadah Oxide Mixture", + subscriptNumbers("??KeNq") + CharExchanger.shifter(8314) + "??", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures(), + OffsetID + 66, + TextureSet.SET_METALLIC); + + public static final Werkstoff triniumSulphate = new Werkstoff( + new short[] { 0xda, 0xda, 0xda }, + "Trinium Sulphate", + subscriptNumbers("KeSO4"), + new Werkstoff.Stats().setElektrolysis(false), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 67, + TextureSet.SET_METALLIC, + new Pair<>(Trinium, 1), + new Pair<>(Sulfur, 1), + new Pair<>(Oxygen, 4)); + + public static final Werkstoff enrichedNaquadahRichSolution = new Werkstoff( + new short[] { 0x52, 0x39, 0x39 }, + "Enriched-Naquadah-Rich Solution", + subscriptNumbers("~?Nq") + CharExchanger.shifter(8314) + "?~", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 68, + TextureSet.SET_FLUID); + + public static final Werkstoff concentratedEnrichedNaquadahSludge = new Werkstoff( + new short[] { 0x52, 0x39, 0x39 }, + "Concentrated Enriched-Naquadah Sludge", + subscriptNumbers("?Nq") + CharExchanger.shifter(8314) + "?", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 69, + TextureSet.SET_METALLIC); + + public static final Werkstoff enrichedNaquadahSulphate = new Werkstoff( + new short[] { 0x52, 0x39, 0x39 }, + "Enriched-Naquadah Sulphate", + "Nq" + CharExchanger.shifter(8314) + subscriptNumbers("(SO4)2"), + new Werkstoff.Stats().setRadioactive(true) + .setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 70, + TextureSet.SET_DULL, + new Pair<>(NaquadahEnriched, 1), + new Pair<>(Sulfur, 2), + new Pair<>(Oxygen, 8)); + + public static final Werkstoff naquadriaEarth = new Werkstoff( + new short[] { 0x4d, 0x4d, 0x55 }, + "Naquadria Oxide Mixture", + subscriptNumbers("??Nq*BaIn??"), + new Werkstoff.Stats().setRadioactive(true) + .setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures(), + OffsetID + 71, + TextureSet.SET_METALLIC); + + public static final Werkstoff indiumPhosphate = new Werkstoff( + new short[] { 0x2b, 0x2e, 0x70 }, + "Indium Phosphate", + subscriptNumbers("InPO4"), + new Werkstoff.Stats().setToxic(true) + .setElektrolysis(false), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 72, + TextureSet.SET_DULL, + new Pair<>(Indium, 1), + new Pair<>(Phosphorus, 1), + new Pair<>(Oxygen, 4)); + + public static final Werkstoff lowQualityNaquadriaPhosphate = new Werkstoff( + new short[] { 0x4d, 0x4d, 0x55 }, + "Low Quality Naquadria Phosphate", + subscriptNumbers("??Nq*3(PO4)4??"), + new Werkstoff.Stats().setRadioactive(true) + .setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 73, + TextureSet.SET_DULL); + + public static final Werkstoff naquadriaRichSolution = new Werkstoff( + new short[] { 0x1f, 0x1e, 0x33 }, + "Naquadria-Rich Solution", + subscriptNumbers("~?Nq*?~"), + new Werkstoff.Stats().setRadioactive(true) + .setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 74, + TextureSet.SET_FLUID); + + public static final Werkstoff lowQualityNaquadriaSulphate = new Werkstoff( + new short[] { 0x73, 0x72, 0x84 }, + "Low Quality Naquadria Sulphate", + subscriptNumbers("??Nq*(SO4)2??"), + new Werkstoff.Stats().setRadioactive(true) + .setToxic(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 75, + TextureSet.SET_METALLIC); + + public static final Werkstoff lowQualityNaquadriaSolution = new Werkstoff( + new short[] { 0x73, 0x72, 0x84 }, + "Low Quality Naquadria Sulphate", + subscriptNumbers("~??Nq*??~"), + new Werkstoff.Stats().setRadioactive(true) + .setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 76, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadriaSulphate = new Werkstoff( + new short[] { 0x1f, 0x1e, 0x33 }, + "Naquadria Sulphate", + subscriptNumbers("Nq*(SO4)2"), + new Werkstoff.Stats().setRadioactive(true) + .setToxic(true) + .setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 77, + TextureSet.SET_METALLIC, + new Pair<>(Naquadria, 1), + new Pair<>(Sulfur, 2), + new Pair<>(Oxygen, 8)); + + public static final Werkstoff naquadahGoo = new Werkstoff( + new short[] { 0x4c, 0x4c, 0x4c }, + "Naquadah Goo", + subscriptNumbers("??NqTiGaAd??"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 78, + TextureSet.SET_FLUID); + + public static final Werkstoff enrichedNaquadahGoo = new Werkstoff( + new short[] { 0x82, 0x68, 0x68 }, + "Enriched Naquadah Goo", + subscriptNumbers("??KeNq") + CharExchanger.shifter(8314) + "??", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 79, + TextureSet.SET_FLUID); + + public static final Werkstoff naquadriaGoo = new Werkstoff( + new short[] { 0x4d, 0x4d, 0x55 }, + "Naquadria Goo", + subscriptNumbers("??Nq*BaIn??"), + new Werkstoff.Stats().setRadioactive(true) + .setToxic(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 80, + TextureSet.SET_FLUID); + + // material for reactor stuff + public static final Werkstoff zircaloy4 = new Werkstoff( + new short[] { 0x8a, 0x6e, 0x68 }, + "Zircaloy-4", + subscriptNumbers("Zr34Sn5Fe2Cr"), + new Werkstoff.Stats().setCentrifuge(true) + .setBlastFurnace(true) + .setMeltingPoint(2800), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMixerRecipes((short) 4), + OffsetID + 81, + TextureSet.SET_METALLIC, + new Pair<>(WerkstoffLoader.Zirconium, 34), + new Pair<>(Tin, 5), + new Pair<>(Iron, 2), + new Pair<>(Chrome, 1)); + + public static final Werkstoff zircaloy2 = new Werkstoff( + new short[] { 0xa4, 0x8f, 0x8b }, + "Zircaloy-2", + subscriptNumbers("Zr34Sn4FeCrNi"), + new Werkstoff.Stats().setCentrifuge(true) + .setBlastFurnace(true) + .setMeltingPoint(2800), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMixerRecipes((short) 2), + OffsetID + 82, + TextureSet.SET_METALLIC, + new Pair<>(WerkstoffLoader.Zirconium, 34), + new Pair<>(Tin, 4), + new Pair<>(Iron, 1), + new Pair<>(Chrome, 1), + new Pair<>(Nickel, 1)); + + public static final Werkstoff incoloy903 = new Werkstoff( + new short[] { 0xa4, 0x8f, 0x8b }, + "Incoloy-903", + subscriptNumbers("Fe12Ni10Co8Ti4Mo2Al"), + new Werkstoff.Stats().setCentrifuge(true) + .setBlastFurnace(true) + .setMeltingPoint(3700), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addSimpleMetalWorkingItems() + .addMixerRecipes((short) 6), + OffsetID + 83, + TextureSet.SET_METALLIC, + new Pair<>(Iron, 12), + new Pair<>(Nickel, 10), + new Pair<>(Cobalt, 8), + new Pair<>(Titanium, 4), + new Pair<>(Molybdenum, 2), + new Pair<>(Aluminium, 1)); + + public static final Werkstoff adamantiumAlloy = new Werkstoff( + new short[] { 0xa0, 0xa0, 0xa0 }, + "Adamantium Alloy", + subscriptNumbers("Ad5Nq2La3"), + new Werkstoff.Stats().setCentrifuge(true) + .setBlastFurnace(true) + .setMeltingPoint(5500) + .setSpeedOverride(191.2F) + .setDurOverride(102400), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addSimpleMetalWorkingItems() + .addMultipleIngotMetalWorkingItems() + .addMixerRecipes((short) 3), + OffsetID + 84, + TextureSet.SET_SHINY, + new Pair<>(Adamantium, 5), + new Pair<>(Naquadah, 2), + new Pair<>(Lanthanum, 3)); + + public static final Werkstoff ethanolGasoline = new Werkstoff( + new short[] { 0xe4, 0xc6, 0x61 }, + "Ethanol Gasoline", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 85, + TextureSet.SET_FLUID); + + public static final Werkstoff cyclopentadiene = new Werkstoff( + new short[] { 0xff, 0xf6, 0xbd }, + "Cyclopentadiene", + subscriptNumbers("C5H6"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 86, + TextureSet.SET_FLUID); + + public static final Werkstoff ferrousChloride = new Werkstoff( + new short[] { 0x5b, 0x5b, 0x5b }, + "Iron II Chloride", + subscriptNumbers("FeCl2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 87, + TextureSet.SET_FLUID); + + public static final Werkstoff diethylamine = new Werkstoff( + new short[] { 0x69, 0x77, 0xca }, + "Diethylamine", + subscriptNumbers("C4H11N"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 88, + TextureSet.SET_FLUID); + + public static final Werkstoff impureFerroceneMixture = new Werkstoff( + new short[] { 0x79, 0x55, 0x08 }, + "Impure Ferrocene Mixture", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 89, + TextureSet.SET_FLUID); + + public static final Werkstoff ferroceneSolution = new Werkstoff( + new short[] { 0xde, 0x7e, 0x1c }, + "Ferrocene Solution", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 90, + TextureSet.SET_FLUID); + + public static final Werkstoff ferroceneWaste = new Werkstoff( + new short[] { 0x35, 0x1d, 0x03 }, + "Ferrocene Waste", + new Werkstoff.S