aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/items
diff options
context:
space:
mode:
authorGlodBlock <1356392126@qq.com>2021-12-07 23:02:17 +0800
committerGlodBlock <1356392126@qq.com>2021-12-07 23:02:17 +0800
commit92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab (patch)
tree2d1118c74e43d5f4337266c3d64f1921c0526d42 /src/main/java/goodgenerator/items
parent06cac63657f40c489477abe923ea3f144fe6749c (diff)
downloadGT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.tar.gz
GT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.tar.bz2
GT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.zip
rename package
Diffstat (limited to 'src/main/java/goodgenerator/items')
-rw-r--r--src/main/java/goodgenerator/items/FuelRod.java183
-rw-r--r--src/main/java/goodgenerator/items/MyItemBlocks.java89
-rw-r--r--src/main/java/goodgenerator/items/MyItems.java112
-rw-r--r--src/main/java/goodgenerator/items/MyMaterial.java1015
-rw-r--r--src/main/java/goodgenerator/items/RadioactiveItem.java40
-rw-r--r--src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java55
-rw-r--r--src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java16
-rw-r--r--src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java103
-rw-r--r--src/main/java/goodgenerator/items/nuclear/NuclearTextures.java31
9 files changed, 1644 insertions, 0 deletions
diff --git a/src/main/java/goodgenerator/items/FuelRod.java b/src/main/java/goodgenerator/items/FuelRod.java
new file mode 100644
index 0000000000..9a0becf8b1
--- /dev/null
+++ b/src/main/java/goodgenerator/items/FuelRod.java
@@ -0,0 +1,183 @@
+package goodgenerator.items;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+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;
+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 java.util.ArrayList;
+import java.util.List;
+
+import static goodgenerator.util.DescTextLocalization.addText;
+
+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;
+ }
+
+ 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;
+ }
+
+ 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, 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)
+ @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)));
+ }
+}
diff --git a/src/main/java/goodgenerator/items/MyItemBlocks.java b/src/main/java/goodgenerator/items/MyItemBlocks.java
new file mode 100644
index 0000000000..2136c6a9c4
--- /dev/null
+++ b/src/main/java/goodgenerator/items/MyItemBlocks.java
@@ -0,0 +1,89 @@
+package goodgenerator.items;
+
+import goodgenerator.blocks.regularBlock.TEBlock;
+import goodgenerator.util.CharExchanger;
+import goodgenerator.util.DescTextLocalization;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.util.GT_LanguageManager;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import goodgenerator.main.GoodGenerator;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static goodgenerator.loader.Loaders.essentiaCell;
+import static goodgenerator.loader.Loaders.yottaFluidTankCell;
+import static goodgenerator.util.CharExchanger.tierName;
+
+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 p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ if (p_77624_1_ == null) return;
+ p_77624_3_.add(mNoMobsToolTip);
+ if (Block.getBlockFromItem(p_77624_1_.getItem()) instanceof TEBlock) {
+ TEBlock tile = (TEBlock) Block.getBlockFromItem(p_77624_1_.getItem());
+ if (tile.getIndex() == 1)
+ p_77624_3_.addAll(Arrays.asList(DescTextLocalization.addText("EssentiaHatch.tooltip", 2)));
+ }
+ else p_77624_3_.add(mNoTileEntityToolTip);
+
+ if (Block.getBlockFromItem(p_77624_1_.getItem()).equals(yottaFluidTankCell)) {
+ StringBuilder cap = new StringBuilder();
+ cap.append(" 1000000");
+ for (int i = 0; i < p_77624_1_.getItemDamage(); i++) cap.append("00");
+ cap.append(" L");
+ p_77624_3_.add(StatCollector.translateToLocal("YOTTankCell.tooltip.0") + CharExchanger.formatNumber(cap.toString()));
+ }
+
+ if (Block.getBlockFromItem(p_77624_1_.getItem()).equals(essentiaCell)) {
+ p_77624_3_.add(StatCollector.translateToLocal("hatchTier.tooltip.0") + " " + tierName[p_77624_1_.getItemDamage() + 3]);
+ }
+ }
+}
diff --git a/src/main/java/goodgenerator/items/MyItems.java b/src/main/java/goodgenerator/items/MyItems.java
new file mode 100644
index 0000000000..58203953db
--- /dev/null
+++ b/src/main/java/goodgenerator/items/MyItems.java
@@ -0,0 +1,112 @@
+package goodgenerator.items;
+
+import goodgenerator.main.GoodGenerator;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+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 java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class MyItems extends Item {
+
+ @SideOnly(Side.CLIENT)
+ protected IIcon[] texture;
+ private String tex;
+ private String[] textureNames;
+ private String Name;
+ private List<String> tooltips = 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) {
+ 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);
+ }
+ }
+}
diff --git a/src/main/java/goodgenerator/items/MyMaterial.java b/src/main/java/goodgenerator/items/MyMaterial.java
new file mode 100644
index 0000000000..5e2a5e2a0d
--- /dev/null
+++ b/src/main/java/goodgenerator/items/MyMaterial.java
@@ -0,0 +1,1015 @@
+package goodgenerator.items;
+
+import goodgenerator.util.CharExchanger;
+import com.github.bartimaeusnek.bartworks.system.material.Werkstoff;
+import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
+import gregtech.api.enums.TextureSet;
+import com.github.bartimaeusnek.bartworks.util.Pair;
+
+import static com.github.bartimaeusnek.bartworks.util.BW_Util.subscriptNumbers;
+import static gregtech.api.enums.Materials.*;
+
+@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("U36Rb8Qt4Rn"),
+ 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("*(U36Rb8Qt4Rn)*"),
+ 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,8),
+ new Pair<> (WerkstoffLoader.Thorium232,4),
+ 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("Lu?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("Pu45Nt8Cs16Am2"),
+ 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("*(Pu45Nt8Cs16Am2)*"),
+ 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(),
+ 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).setBlastFurnace(true),
+ 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(),
+ 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[]{0