diff options
author | Raven Szewczyk <git@eigenraven.me> | 2024-05-25 14:13:58 +0100 |
---|---|---|
committer | Raven Szewczyk <git@eigenraven.me> | 2024-05-25 14:13:58 +0100 |
commit | 91b1909427bb0cab0f72505c325b07f8fb39c62e (patch) | |
tree | d6570897b7150afd4f3cb1470202af11e3e9ece3 /src/main/java/goodgenerator/items | |
parent | 40efa0d238677418071b658b11b0a1a7c9e0d864 (diff) | |
download | GT5-Unofficial-91b1909427bb0cab0f72505c325b07f8fb39c62e.tar.gz GT5-Unofficial-91b1909427bb0cab0f72505c325b07f8fb39c62e.tar.bz2 GT5-Unofficial-91b1909427bb0cab0f72505c325b07f8fb39c62e.zip |
Move GoodGen sources
Diffstat (limited to 'src/main/java/goodgenerator/items')
10 files changed, 2443 insertions, 0 deletions
diff --git a/src/main/java/goodgenerator/items/DepletedFuelRod.java b/src/main/java/goodgenerator/items/DepletedFuelRod.java new file mode 100644 index 0000000000..308f149933 --- /dev/null +++ b/src/main/java/goodgenerator/items/DepletedFuelRod.java @@ -0,0 +1,54 @@ +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 new file mode 100644 index 0000000000..00ca8b3491 --- /dev/null +++ b/src/main/java/goodgenerator/items/FuelRod.java @@ -0,0 +1,215 @@ +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<FuelRod.ItemStackCoord> 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<FuelRod.ItemStackCoord> 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/MyItemBlocks.java b/src/main/java/goodgenerator/items/MyItemBlocks.java new file mode 100644 index 0000000000..3ee7347e97 --- /dev/null +++ b/src/main/java/goodgenerator/items/MyItemBlocks.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.TEBlock; +import goodgenerator.blocks.tileEntity.EssentiaOutputHatch; +import goodgenerator.main.GoodGenerator; +import goodgenerator.util.CharExchanger; +import goodgenerator.util.DescTextLocalization; +import gregtech.api.util.GT_LanguageManager; + +public class MyItemBlocks extends ItemBlock { + + private final String mNoMobsToolTip = GT_LanguageManager + .addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block"); + private final String mNoTileEntityToolTip = GT_LanguageManager + .addStringLocalization("gt.notileentityinthisblock", "This is NOT a TileEntity!"); + + public MyItemBlocks(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 TEBlock) { + TEBlock tile = (TEBlock) 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") + " " + + EssentiaOutputHatch.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/MyItems.java b/src/main/java/goodgenerator/items/MyItems.java new file mode 100644 index 0000000000..71a67d4fd6 --- /dev/null +++ b/src/main/java/goodgenerator/items/MyItems.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 MyItems extends Item { + + @SideOnly(Side.CLIENT) + protected IIcon[] texture; + + private String tex; + private String[] textureNames; + private final String Name; + private List<String> tooltips = new ArrayList<>(); + private List<String> tooltipses = new ArrayList<>(); + + public MyItems(String name, CreativeTabs Tab) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.tex = name; + this.Name = name; + } + + public MyItems(String name, CreativeTabs Tab, String[] textures) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.setHasSubtypes(true); + this.textureNames = textures; + this.Name = name; + } + + public MyItems(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 MyItems(String name, String tooltip, CreativeTabs Tab) { + this.setUnlocalizedName(name); + this.setCreativeTab(Tab); + this.tex = name; + this.tooltips.add(tooltip); + this.Name = name; + } + + public MyItems(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/MyMaterial.java b/src/main/java/goodgenerator/items/MyMaterial.java new file mode 100644 index 0000000000..1e75167ef0 --- /dev/null +++ b/src/main/java/goodgenerator/items/MyMaterial.java @@ -0,0 +1,1524 @@ +package goodgenerator.items; + +import static com.github.bartimaeusnek.bartworks.util.BW_Util.subscriptNumbers; +import static gregtech.api.enums.Materials.*; + +import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import com.github.bartimaeusnek.bartworks.util.Pair; + +import goodgenerator.util.CharExchanger; +import gregtech.api.enums.TextureSet; + +@SuppressWarnings({ "unchecked" }) +public class MyMaterial 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<>(MyMaterial.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), + 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.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 91, + TextureSet.SET_FLUID); + + public static final Werkstoff ferrocene = new Werkstoff( + new short[] { 0xf1, 0x8f, 0x2b }, + "Ferrocene", + subscriptNumbers("Fe(C5H5)2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 92, + TextureSet.SET_SHINY); + + public static final Werkstoff ironedKerosene = new Werkstoff( + new short[] { 0x97, 0x00, 0x61 }, + "Jet Fuel No.3", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 93, + TextureSet.SET_FLUID); + + public static final Werkstoff ironedFuel = new Werkstoff( + new short[] { 0xff, 0x98, 0x00 }, + "Jet Fuel A", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 94, + TextureSet.SET_FLUID); + + public static final Werkstoff marM200 = new Werkstoff( + new short[] { 0x51, 0x51, 0x51 }, + "MAR-M200 Steel", + new Werkstoff.Stats().setCentrifuge(true) + .setBlastFurnace(true) + .setMeltingPoint(5000), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addSimpleMetalWorkingItems() + .addMultipleIngotMetalWorkingItems() + .addMixerRecipes((short) 7), + OffsetID + 95, + TextureSet.SET_SHINY, + new Pair<>(Niobium, 2), + new Pair<>(Chrome, 9), + new Pair<>(Aluminium, 5), + new Pair<>(Titanium, 2), + new Pair<>(Cobalt, 10), + new Pair<>(Tungsten, 13), + new Pair<>(Nickel, 18)); + + public static final Werkstoff marCeM200 = new Werkstoff( + new short[] { 0x38, 0x30, 0x30 }, + "MAR-Ce-M200 Steel", + new Werkstoff.Stats().setCentrifuge(true) + .setBlastFurnace(true) + .setMeltingPoint(5000) + .setMass(1200) + .setProtons(1000) + .setSpeedOverride(150F) + .setDurOverride(204800), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addSimpleMetalWorkingItems() + .addMultipleIngotMetalWorkingItems(), + OffsetID + 96, + TextureSet.SET_METALLIC, + new Pair<>(marM200, 18), + new Pair<>(Cerium, 1)); + + public static final Werkstoff lithiumChloride = new Werkstoff( + new short[] { 0xb7, 0xe2, 0xce }, + "Lithium Chloride", + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .enforceUnification(), + OffsetID + 97, + TextureSet.SET_DULL, + new Pair<>(Lithium, 1), + new Pair<>(Chlorine, 1)); + + public static final Werkstoff signalium = new Werkstoff( + new short[] { 0xd4, 0x40, 0x00 }, + "Signalium", + new Werkstoff.Stats().setBlastFurnace(true) + .setMeltingPoint(4000), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems(), + OffsetID + 98, + TextureSet.SET_SHINY, + new Pair<>(AnnealedCopper, 4), + new Pair<>(Ardite, 2), + new Pair<>(RedAlloy, 2)); + + public static final Werkstoff lumiinessence = new Werkstoff( + new short[] { 0xe8, 0xf2, 0x24 }, + "Lumiinessence", + subscriptNumbers("(Al??)2(PO4)4"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust(), + OffsetID + 99, + TextureSet.SET_DULL); + + public static final Werkstoff lumiium = new Werkstoff( + new short[] { 0xe8, 0xf2, 0x24 }, + "Lumiium", + new Werkstoff.Stats().setBlastFurnace(true) + .setMeltingPoint(4000), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems(), + OffsetID + 100, + TextureSet.SET_SHINY, + new Pair<>(TinAlloy, 4), + new Pair<>(SterlingSilver, 2), + new Pair<>(lumiinessence, 2)); + + public static final Werkstoff artheriumSn = new Werkstoff( + new short[] { 0x60, 0x36, 0xf7 }, + "Artherium-Sn", + new Werkstoff.Stats().setBlastFurnace(true) + .setMeltingPoint(6500) + .setCentrifuge(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMixerRecipes((short) 6), + OffsetID + 101, + TextureSet.SET_SHINY, + new Pair<>(adamantiumAlloy, 12), + new Pair<>(orundum, 9), + new Pair<>(Tin, 8), + new Pair<>(Arsenic, 7), + new Pair<>(Caesium, 4), + new Pair<>(Osmiridium, 3)); + + public static final Werkstoff titaniumBetaC = new Werkstoff( + new short[] { 0xc7, 0x2f, 0xcc }, + "Tanmolyium Beta-C", + new Werkstoff.Stats().setBlastFurnace(true) + .setMeltingPoint(5300) + .setCentrifuge(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMixerRecipes((short) 5), + OffsetID + 102, + TextureSet.SET_METALLIC, + new Pair<>(Titanium, 5), + new Pair<>(Molybdenum, 5), + new Pair<>(Vanadium, 2), + new Pair<>(Chrome, 3), + new Pair<>(Aluminium, 1)); + + public static final Werkstoff dalisenite = new Werkstoff( + new short[] { 0xb0, 0xb8, 0x12 }, + "Dalisenite", + new Werkstoff.Stats().setMeltingPoint(8700) + .setCentrifuge(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMixerRecipes((short) 6), + OffsetID + 103, + TextureSet.SET_SHINY, + new Pair<>(titaniumBetaC, 14), + new Pair<>(Tungsten, 10), + new Pair<>(NiobiumTitanium, 9), + new Pair<>(WerkstoffLoader.LuVTierMaterial, 8), + new Pair<>(Quantium, 7), + new Pair<>(Erbium, 3)); + + public static final Werkstoff hikarium = new Werkstoff( + new short[] { 0xff, 0xd6, 0xfb }, + "Hikarium", + new Werkstoff.Stats().setBlastFurnace(true) + .setMeltingPoint(5400) + .setCentrifuge(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMixerRecipes((short) 3), + OffsetID + 104, + TextureSet.SET_SHINY, + new Pair<>(lumiium, 18), + new Pair<>(Silver, 8), + new Pair<>(Sunnarium, 4)); + + public static final Werkstoff tairitsu = new Werkstoff( + new short[] { 0x36, 0x36, 0x36 }, + "Tairitsu", + new Werkstoff.Stats().setBlastFurnace(true) + .setMeltingPoint(7400) + .setCentrifuge(true), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMixerRecipes((short) 6), + OffsetID + 105, + TextureSet.SET_SHINY, + new Pair<>(Tungsten, 8), + new Pair<>(Naquadria, 7), + new Pair<>(Bedrockium, 4), + new Pair<>(Carbon, 4), + new Pair<>(Vanadium, 3), + new Pair<>(BlackPlutonium, 1)); + + public static final Werkstoff antimonyPentafluorideSolution = new Werkstoff( + new short[] { 0x16, 0xd5, 0xe2 }, + "Antimony Pentafluoride Solution", + subscriptNumbers("SbF5"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + OffsetID + 106, + TextureSet.SET_FLUID); + + public static final Werkstoff magnesiumSulphate = new Werkstoff( + new short[] { 0x87, 0x74, 0x91 }, + "Magnesium Sulphate", + subscriptNumbers("MgSO4"), + new Werkstoff.Stats().setElektrolysis(true), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 107, + TextureSet.SET_DULL, + new Pair<>(Magnesium, 1), + new Pair<>(Sulfur, 1), + new Pair<>(Oxygen, 4)); + + public static final Werkstoff preciousMetalAlloy = new Werkstoff( + new short[] { 0x9d, 0x90, 0xc6 }, + "Precious Metals Alloy", + new Werkstoff.Stats().setBlastFurnace(true) + .setMeltingPoint(10000) + .setCentrifuge(true) + .setSpeedOverride(100F), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMultipleIngotMetalWorkingItems() + .addMixerRecipes((short) 6), + OffsetID + 108, + TextureSet.SET_SHINY, + new Pair<>(WerkstoffLoader.Ruthenium, 1), + new Pair<>(WerkstoffLoader.Rhodium, 1), + new Pair<>(Palladium, 1), + new Pair<>(Platinum, 1), + new Pair<>(Osmium, 1), + new Pair<>(Iridium, 1)); + + public static final Werkstoff enrichedNaquadahAlloy = new Werkstoff( + new short[] { 0x16, 0x07, 0x40 }, + "Enriched Naquadah Alloy", + new Werkstoff.Stats().setBlastFurnace(true) + .setMeltingPoint(11000) + .setCentrifuge(true) + .setSpeedOverride(180F), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addSimpleMetalWorkingItems() + .addMultipleIngotMetalWorkingItems() + .addMixerRecipes((short) 4), + OffsetID + 109, + TextureSet.SET_METALLIC, + new Pair<>(NaquadahEnriched, 8), + new Pair<>(Tritanium, 5), + new Pair<>(WerkstoffLoader.Californium, 3), + new Pair<>(BlackPlutonium, 2)); + + public static final Werkstoff metastableOganesson = new Werkstoff( + new short[] { 0x14, 0x39, 0x7f }, + "Metastable Oganesson", + "Og*", + new Werkstoff.Stats().setBlastFurnace(true) + .setProtons(118) + .setMass(294) + .setMeltingPoint(11000), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addMultipleIngotMetalWorkingItems() + .addMetaSolidifierRecipes(), + OffsetID + 110, + TextureSet.SET_SHINY); + + public static final Werkstoff shirabon = new Werkstoff( + new short[] { 0xe0, 0x15, 0x6d }, + "Shirabon", + "Sh" + CharExchanger.shifter(9191), + new Werkstoff.Stats().setProtons(500) + .setMass(750) + .setMeltingPoint(13000) + .setSpeedOverride(640.0F) + .setDurOverride(15728640) + .setQualityOverride((byte) 26), + Werkstoff.Types.ELEMENT, + new Werkstoff.GenerationFeatures().onlyDust() + .addMolten() + .addMetalItems() + .addCraftingMetalWorkingItems() + .addSimpleMetalWorkingItems() + .addMultipleIngotMetalWorkingItems() + .addMetalCraftingSolidifierRecipes() + .addMetaSolidifierRecipes(), + OffsetID + 111, + TextureSet.SET_SHINY); + + public static final Werkstoff inertNaquadah = new Werkstoff( + new short[] { 0x3b, 0x3b, 0x3b }, + "Inert Naquadah", + new Werkstoff.Stats(), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 112, + TextureSet.SET_METALLIC, + new Pair<>(Naquadah, 1)); + + public static final Werkstoff inertEnrichedNaquadah = new Werkstoff( + new short[] { 0x61, 0x44, 0x44 }, + "Inert Enriched Naquadah", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 113, + TextureSet.SET_METALLIC, + new Pair<>(NaquadahEnriched, 1)); + + public static final Werkstoff inertNaquadria = new Werkstoff( + new short[] { 0x00, 0x00, 0x00 }, + "Inert Naquadria", + new Werkstoff.Stats().setRadioactive(true), + Werkstoff.Types.MATERIAL, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + OffsetID + 114, + TextureSet.SET_METALLIC, + new Pair<>(Naquadria, 1)); + + @Override + public void run() {} +} diff --git a/src/main/java/goodgenerator/items/RadioactiveItem.java b/src/main/java/goodgenerator/items/RadioactiveItem.java new file mode 100644 index 0000000000..ab6c003268 --- /dev/null +++ b/src/main/java/goodgenerator/items/RadioactiveItem.java @@ -0,0 +1,40 @@ +package goodgenerator.items; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; + +import gregtech.api.util.GT_Utility; +import ic2.core.IC2Potion; + +public class RadioactiveItem extends MyItems { + + protected final int mRadio; + + public RadioactiveItem(String name, CreativeTabs Tab, int Rad) { + super(name, Tab); + this.mRadio = Rad; + } + + public RadioactiveItem(String name, String[] tooltip, CreativeTabs Tab, int Rad) { + super(name, tooltip, Tab); + this.mRadio = Rad; + } + + public RadioactiveItem(String name, String tooltip, CreativeTabs Tab, int Rad) { + super(name, tooltip, Tab); + this.mRadio = Rad; + } + + @Override + public void onUpdate(ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand) { + super.onUpdate(aStack, aWorld, aPlayer, aTimer, aIsInHand); + EntityLivingBase tPlayer = (EntityPlayer) aPlayer; + if (!GT_Utility.isWearingFullRadioHazmat(tPlayer)) + tPlayer.addPotionEffect(new PotionEffect(IC2Potion.radiation.id, mRadio, 4)); + } +} diff --git a/src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java new file mode 100644 index 0000000000..593a663a71 --- /dev/null +++ b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java @@ -0,0 +1,60 @@ +// package goodgenerator.items.nuclear; +// +// import goodgenerator.loader.Loaders; +// import net.minecraft.item.ItemStack; +// +// import java.util.HashMap; +// import java.util.HashSet; +// +// public class IsotopeMaterial { +// +// public static final HashSet<IsotopeMaterial> mIsotopeMaterial = new HashSet<>(); +// public static final HashMap<Integer, IsotopeMaterial> mIDMap = new HashMap<>(); +// public static final HashMap<String, IsotopeMaterial> mNameMap = new HashMap<>(); +// +// public final int mID; +// public final int mNeutron; +// public final String mName; +// public final String mLocalizedName; +// public final String mMaterialName; +// public final short[] mRGB; +// public final short[] mRGBO; +// public final NuclearTextures mTexture; +// +// public IsotopeMaterial(int aID, String aName, String aMaterialName, String aLocalizedName, NuclearTextures +// aTexture, int aR, int aG, int aB, int aNeutron) { +// if (mIDMap.get(aID) != null) +// throw new UnsupportedOperationException("ID:" + aID + " is already used!"); +// this.mID = aID; +// this.mNeutron = aNeutron; +// this.mName = aName; +// this.mMaterialName = aMaterialName; +// this.mLocalizedName = aLocalizedName; +// this.mRGB = new short[] {(short) (aR * 0.6), (short) (aG * 0.6), (short) (aB * 0.6), 0}; +// this.mRGBO = new short[] {(short) aR, (short) aG, (short) aB, 0}; +// this.mTexture = aTexture; +// mIsotopeMaterial.add(this); +// mIDMap.put(this.mID, this); +// mNameMap.put(this.mName, this); +// } +// +// public ItemStack getFull(int aAmount) { +// if (aAmount > 64) aAmount = 64; +// return new ItemStack(Loaders.Isotope, aAmount, mID + 1000); +// } +// +// public ItemStack getTiny(int aAmount) { +// if (aAmount > 64) aAmount = 64; +// return new ItemStack(Loaders.Isotope, aAmount, mID + 2000); +// } +// +// public ItemStack getFullOxide(int aAmount) { +// if (aAmount > 64) aAmount = 64; +// return new ItemStack(Loaders.Isotope, aAmount, mID + 3000); +// } +// +// public ItemStack getTinyOxide(int aAmount) { +// if (aAmount > 64) aAmount = 64; +// return new ItemStack(Loaders.Isotope, aAmount, mID + 4000); +// } +// } diff --git a/src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java new file mode 100644 index 0000000000..a014abaa32 --- /dev/null +++ b/src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java @@ -0,0 +1,177 @@ +// package goodgenerator.items.nuclear; +// +// public class IsotopeMaterialLoader implements Runnable { +// +// protected static final int OffsetID = 0; +// +// public static final IsotopeMaterial Thorium232 = new IsotopeMaterial( +// OffsetID, +// "Thorium232", "Thorium", "Thorium-232", +// NuclearTextures.STABLE1, 59, 59, 59, +// 232 +// ); +// +// public static final IsotopeMaterial Thorium230 = new IsotopeMaterial( +// OffsetID + 1, +// "Thorium232", "Thorium", "Thorium-230", +// NuclearTextures.STABLE2, 59, 59, 59, +// 230 +// ); +// +// public static final IsotopeMaterial Uranium233 = new IsotopeMaterial( +// OffsetID + 2, +// "Uranium233", "Uranium", "Uranium-233", +// NuclearTextures.UNSTABLE4, 60, 167, 85, +// 233 +// ); +// +// public static final IsotopeMaterial Uranium235 = new IsotopeMaterial( +// OffsetID + 3, +// "Uranium235", "Uranium", "Uranium-235", +// NuclearTextures.UNSTABLE3, 60, 167, 85, +// 235 +// ); +// +// public static final IsotopeMaterial Uranium238 = new IsotopeMaterial( +// OffsetID + 4, +// "Uranium238", "Uranium", "Uranium-238", +// NuclearTextures.STABLE2, 60, 167, 85, +// 238 +// ); +// +// public static final IsotopeMaterial Neptunium236 = new IsotopeMaterial( +// OffsetID + 5, +// "Neptunium236", "Neptunium", "Neptunium-236", +// NuclearTextures.UNSTABLE1, 60, 170, 176, +// 236 +// ); +// +// public static final IsotopeMaterial Neptunium237 = new IsotopeMaterial( +// OffsetID + 6, +// "Neptunium237", "Neptunium", "Neptunium-237", +// NuclearTextures.STABLE2, 60, 170, 176, +// 237 +// ); +// +// public static final IsotopeMaterial Plutonium238 = new IsotopeMaterial( +// OffsetID + 7, +// "Plutonium238", "Plutonium", "Plutonium-238", +// NuclearTextures.STABLE1, 169, 169, 169, +// 238 +// ); +// +// public static final IsotopeMaterial Plutonium239 = new IsotopeMaterial( +// OffsetID + 8, +// "Plutonium239", "Plutonium", "Plutonium-239", +// NuclearTextures.UNSTABLE1, 169, 169, 169, +// 239 +// ); +// +// public static final IsotopeMaterial Plutonium241 = new IsotopeMaterial( +// OffsetID + 9, +// "Plutonium241", "Plutonium", "Plutonium-241", +// NuclearTextures.UNSTABLE2, 169, 169, 169, +// 241 +// ); +// +// public static final IsotopeMaterial Plutonium242 = new IsotopeMaterial( +// OffsetID + 10, +// "Plutonium242", "Plutonium", "Plutonium-242", +// NuclearTextures.STABLE2, 169, 169, 169, +// 242 +// ); +// +// public static final IsotopeMaterial Americium241 = new IsotopeMaterial( +// OffsetID + 11, +// "Americium241", "Americium", "Americium-241", +// NuclearTextures.STABLE1, 150, 120, 22, +// 241 +// ); +// +// public static final IsotopeMaterial Americium242 = new IsotopeMaterial( +// OffsetID + 12, +// "Americium242", "Americium", "Americium-242", +// NuclearTextures.UNSTABLE4, 150, 120, 22, +// 242 +// ); +// +// public static final IsotopeMaterial Americium243 = new IsotopeMaterial( +// OffsetID + 13, +// "Americium243", "Americium", "Americium-243", +// NuclearTextures.STABLE2, 150, 120, 22, +// 243 +// ); +// +// public static final IsotopeMaterial Curium243 = new IsotopeMaterial( +// OffsetID + 14, +// "Curium243", "Curium", "Curium-243", +// NuclearTextures.UNSTABLE1, 107, 6, 105, +// 243 +// ); +// +// public static final IsotopeMaterial Curium245 = new IsotopeMaterial( +// OffsetID + 15, +// "Curium245", "Curium", "Curium-245", +// NuclearTextures.UNSTABLE3, 107, 6, 105, +// 245 +// ); +// +// public static final IsotopeMaterial Curium246 = new IsotopeMaterial( +// OffsetID + 16, +// "Curium246", "Curium", "Curium-246", +// NuclearTextures.STABLE2, 107, 6, 105, +// 246 +// ); +// +// public static final IsotopeMaterial Curium247 = new IsotopeMaterial( +// OffsetID + 17, +// "Curium247", "Curium", "Curium-247", +// NuclearTextures.UNSTABLE4, 107, 6, 105, +// 247 +// ); +// +// public static final IsotopeMaterial Berkelium247 = new IsotopeMaterial( +// OffsetID + 18, +// "Berkelium247", "Berkelium", "Berkelium-247", +// NuclearTextures.STABLE2, 130, 54, 29, +// 247 +// ); +// +// public static final IsotopeMaterial Berkelium248 = new IsotopeMaterial( +// OffsetID + 19, +// "Berkelium248", "Berkelium", "Berkelium-248", +// NuclearTextures.UNSTABLE1, 130, 54, 29, +// 248 +// ); +// +// public static final IsotopeMaterial Californium249 = new IsotopeMaterial( +// OffsetID + 20, +// "Californium249", "Californium", "Californium-249", +// NuclearTextures.UNSTABLE2, 186, 55, 11, +// 249 +// ); +// +// public static final IsotopeMaterial Californium250 = new IsotopeMaterial( +// OffsetID + 21, +// "Californium250", "Californium", "Californium-250", +// NuclearTextures.STABLE1, 186, 55, 11, +// 250 +// ); +// +// public static final IsotopeMaterial Californium251 = new IsotopeMaterial( +// OffsetID + 22, +// "Californium251", "Californium", "Californium-251", +// NuclearTextures.UNSTABLE4, 186, 55, 11, +// 251 +// ); +// +// public static final IsotopeMaterial Californium252 = new IsotopeMaterial( +// OffsetID + 23, +// "Californium252", "Californium", "Californium-252", +// NuclearTextures.UNSTABLE1, 186, 55, 11, +// 252 +// ); +// +// @Override +// public void run() { } +// } diff --git a/src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java b/src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java new file mode 100644 index 0000000000..a0b71b52e5 --- /dev/null +++ b/src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java @@ -0,0 +1,110 @@ +// package goodgenerator.items.nuclear; +// +// import com.github.bartimaeusnek.bartworks.util.Pair; +// import cpw.mods.fml.relauncher.Side; +// import cpw.mods.fml.relauncher.SideOnly; +// import goodgenerator.main.GoodGenerator; +// import gregtech.api.interfaces.IIconContainer; +// import gregtech.api.items.GT_MetaGenerated_Item; +// import gregtech.api.util.GT_LanguageManager; +// import gregtech.api.util.GT_OreDictUnificator; +// import net.minecraft.creativetab.CreativeTabs; +// import net.minecraft.item.Item; +// import net.minecraft.item.ItemStack; +// import net.minecraft.util.EnumChatFormatting; +// import net.minecraft.util.IIcon; +// +// import java.util.List; +// +// import static goodgenerator.items.nuclear.IsotopeMaterial.mIDMap; +// import static goodgenerator.items.nuclear.IsotopeMaterial.mIsotopeMaterial; +// +// public class NuclearMetaItemGenerator extends GT_MetaGenerated_Item { +// +// /** +// * <p>Full ingot - 1000 +// * <p>Tiny ingot - 2000 +// * <p>Full-Oxide - 3000 +// * <p>Tiny-Oxide - 4000 +// */ +// public static final Pair<Integer, String>[] TYPE_OFFSET = new Pair[] { +// new Pair<>(1000, "%s"), +// new Pair<>(2000, "Tiny of %s"), +// new Pair<>(3000, "%s Oxide"), +// new Pair<>(4000, "Tiny of %s Oxide"), +// }; +// public static final Pair<Integer, String>[] OREPREFIX = new Pair[] { +// new Pair<>(1000, "item%s"), +// new Pair<>(2000, "itemTiny%s"), +// new Pair<>(3000, "item%sOxide"), +// new Pair<>(4000, "itemTiny%sOxide"), +// }; +// +// public NuclearMetaItemGenerator() { +// super("nuclearIsotopeMaterial", (short) 32766, (short) 0); +// this.setCreativeTab(GoodGenerator.GG); +// for (IsotopeMaterial tIsotope : mIsotopeMaterial) { +// for (Pair<Integer, String> tType : TYPE_OFFSET) { +// int tOffset = tType.getKey(); +// String tOreName = tType.getValue(); +// ItemStack tStack = new ItemStack(this, 1, tIsotope.mID + tOffset); +// GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".name", +// String.format(tOreName, tIsotope.mLocalizedName)); +// GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(tStack) + ".tooltip", +// EnumChatFormatting.AQUA + String.format("%s's Isotope.", tIsotope.mMaterialName) + EnumChatFormatting.RESET); +// } +// for (Pair<Integer, String> tOreDict : OREPREFIX) { +// int tOffset = tOreDict.getKey(); +// String tOreName = tOreDict.getValue(); +// ItemStack tStack = new ItemStack(this, 1, tIsotope.mID + tOffset); +// GT_OreDictUnificator.registerOre(String.format(tOreName, tIsotope.mName), tStack); +// } +// } +// } +// +// @Override +// public String getItemStackDisplayName(ItemStack aStack) { +// return GT_LanguageManager.getTranslation(this.getUnlocalizedName(aStack) + ".name"); +// } +// +// @Override +// public IIconContainer getIconContainer(int aMetaData) { +// int tID = aMetaData % 1000; +// int tType = aMetaData / 1000 - 1; +// IsotopeMaterial tMaterial = mIDMap.get(tID); +// if (tMaterial != null) { +// return tMaterial.mTexture.mTextures[tType]; +// } +// return null; +// } +// +// @Override +// @SideOnly(Side.CLIENT) +// public void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) { +// for (IsotopeMaterial tIsotope : mIsotopeMaterial) { +// for (int i = 1; i <= 4; i ++) { +// ItemStack tStack = new ItemStack(this, 1, tIsotope.mID + i * 1000); +// aList.add(tStack); +// } +// } +// } +// +// @Override +// public short[] getRGBa(ItemStack aStack) { +// int tID = aStack.getItemDamage() % 1000; +// int tType = aStack.getItemDamage() / 1000; +// IsotopeMaterial tMaterial = mIDMap.get(tID); +// if (tMaterial != null) { +// if (tType == 1 || tType == 2) +// return tMaterial.mRGB; +// else +// return tMaterial.mRGBO; +// } +// return null; +// } +// +// @Override +// public final IIcon getIconFromDamage(int aMetaData) { +// return this.getIconContainer(aMetaData).getIcon(); +// } +// } diff --git a/src/main/java/goodgenerator/items/nuclear/NuclearTextures.java b/src/main/java/goodgenerator/items/nuclear/NuclearTextures.java new file mode 100644 index 0000000000..63314044cf --- /dev/null +++ b/src/main/java/goodgenerator/items/nuclear/NuclearTextures.java @@ -0,0 +1,31 @@ +// package goodgenerator.items.nuclear; +// +// import gregtech.api.enums.Textures; +// import gregtech.api.interfaces.IIconContainer; +// +// public class NuclearTextures { +// public static final NuclearTextures +// STABLE1 = new NuclearTextures("stable1"), +// STABLE2 = new NuclearTextures("stable2"), +// UNSTABLE1 = new NuclearTextures("unstable1"), +// UNSTABLE2 = new NuclearTextures("unstable2"), +// UNSTABLE3 = new NuclearTextures("unstable3"), +// UNSTABLE4 = new NuclearTextures("unstable4"); +// +// public final IIconContainer[] mTextures = new IIconContainer[4]; +// public final String mSetName; +// public static final String mTextureDir = "icons/isotope/"; +// public static final int +// FULL = 0, +// TINY = 1, +// FULL_OXIDE = 2, +// TINY_OXIDE = 3; +// +// public NuclearTextures(String aName) { +// mSetName = aName; +// mTextures[0] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName); +// mTextures[1] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName + "tiny"); +// mTextures[2] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName); +// mTextures[3] = new Textures.ItemIcons.CustomIcon(mTextureDir + aName + "tiny"); +// } +// } |