diff options
Diffstat (limited to 'src/main/java/com/elisis/gtnhlanth')
44 files changed, 0 insertions, 13013 deletions
diff --git a/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java b/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java deleted file mode 100644 index 1683ca3ea0..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/GTNHLanthanides.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.elisis.gtnhlanth; - -import java.util.logging.Logger; - -import com.elisis.gtnhlanth.common.CommonProxy; -import com.elisis.gtnhlanth.common.register.BotWerkstoffMaterialPool; -import com.elisis.gtnhlanth.common.register.LanthItemList; -import com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool; -import com.elisis.gtnhlanth.common.tileentity.recipe.beamline.BeamlineRecipeLoader; -import com.elisis.gtnhlanth.loader.BotRecipes; -import com.elisis.gtnhlanth.loader.RecipeLoader; -import com.github.bartimaeusnek.bartworks.API.WerkstoffAdderRegistry; - -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLLoadCompleteEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; - -@Mod( - modid = Tags.MODID, - version = Tags.VERSION, - name = Tags.MODNAME, - dependencies = "required-after:IC2; " + "required-after:gregtech; " - + "required-after:bartworks; " - + "required-after:GoodGenerator; " - + "before:miscutils; ") -public class GTNHLanthanides { - - public static Logger LOG = Logger.getLogger("GTNH:Lanthanides"); - - @Mod.Instance(Tags.MODID) - public static GTNHLanthanides instance; - - @SidedProxy( - clientSide = "com.elisis.gtnhlanth.client.ClientProxy", - serverSide = "com.elisis.gtnhlanth.common.CommonProxy") - public static CommonProxy proxy; - - @EventHandler - public static void preInit(FMLPreInitializationEvent e) { - - WerkstoffAdderRegistry.addWerkstoffAdder(new WerkstoffMaterialPool()); - WerkstoffAdderRegistry.addWerkstoffAdder(new BotWerkstoffMaterialPool()); - - LanthItemList.registerTypical(); - LanthItemList.registerGTMTE(); - - // GregTech_API.sAfterGTPostload.add(new ZPMRubberChanges()); - proxy.preInit(e); - } - - @EventHandler - public static void init(FMLInitializationEvent e) { - proxy.init(e); - WerkstoffMaterialPool.runInit(); - } - - @EventHandler - public static void postInit(FMLPostInitializationEvent e) { - - RecipeLoader.loadGeneral(); - RecipeLoader.loadLanthanideRecipes(); - RecipeLoader.addRandomChemCrafting(); - RecipeLoader.loadAccelerator(); - - BeamlineRecipeLoader.load(); - - BotRecipes.addGTRecipe(); - proxy.postInit(e); - - } - - @EventHandler - public static void onModLoadingComplete(FMLLoadCompleteEvent e) { - - BotRecipes.removeRecipes(); - RecipeLoader.removeCeriumSources(); - - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/Tags.java b/src/main/java/com/elisis/gtnhlanth/Tags.java deleted file mode 100644 index 461eac1db3..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/Tags.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.elisis.gtnhlanth; - -import gregtech.GT_Version; - -public class Tags { - - public static final String MODID = "gtnhlanth"; - public static final String MODNAME = "GTNH: Lanthanides"; - public static final String VERSION = GT_Version.VERSION; - public static final String GROUPNAME = "com.elisis.gtnhlanth"; -} diff --git a/src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java b/src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java deleted file mode 100644 index 4bf100b1d4..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/api/recipe/LanthanidesRecipeMaps.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.elisis.gtnhlanth.api.recipe; - -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.recipe.RecipeMap; -import gregtech.api.recipe.RecipeMapBackend; -import gregtech.api.recipe.RecipeMapBuilder; -import gregtech.nei.formatter.HeatingCoilSpecialValueFormatter; -import gregtech.nei.formatter.SimpleSpecialValueFormatter; - -public class LanthanidesRecipeMaps { - - public static final RecipeMap<RecipeMapBackend> digesterRecipes = RecipeMapBuilder.of("gtnhlanth.recipe.digester") - .maxIO(1, 1, 1, 1) - .minInputs(1, 1) - .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) - .neiSpecialInfoFormatter(HeatingCoilSpecialValueFormatter.INSTANCE) - .build(); - public static final RecipeMap<RecipeMapBackend> dissolutionTankRecipes = RecipeMapBuilder - .of("gtnhlanth.recipe.disstank") - .maxIO(2, 3, 2, 1) - .minInputs(1, 1) - .progressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE) - .neiSpecialInfoFormatter(new SimpleSpecialValueFormatter("value.disstank")) - .build(); -} diff --git a/src/main/java/com/elisis/gtnhlanth/client/ClientProxy.java b/src/main/java/com/elisis/gtnhlanth/client/ClientProxy.java deleted file mode 100644 index 4420975173..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/client/ClientProxy.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.elisis.gtnhlanth.client; - -import com.elisis.gtnhlanth.common.CommonProxy; - -public class ClientProxy extends CommonProxy { -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/CommonProxy.java b/src/main/java/com/elisis/gtnhlanth/common/CommonProxy.java deleted file mode 100644 index 6e77ba200f..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/CommonProxy.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.elisis.gtnhlanth.common; - -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; - -public class CommonProxy { - - public void preInit(FMLPreInitializationEvent e) {} - - public void init(FMLInitializationEvent e) {} - - public void postInit(FMLPostInitializationEvent e) {} -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/beamline/BeamInformation.java b/src/main/java/com/elisis/gtnhlanth/common/beamline/BeamInformation.java deleted file mode 100644 index 9c10703c2e..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/beamline/BeamInformation.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.elisis.gtnhlanth.common.beamline; - -public class BeamInformation { - - private float energy; // in keV - private int rate; - - private Particle particle; - private int particleId; - - private float focus; - - public BeamInformation(float energy, int rate, int particleId, float focus) { - this.energy = energy; - this.rate = rate; - this.particleId = particleId; - this.particle = Particle.values()[particleId]; - this.focus = focus; - } - - public float getEnergy() { - return this.energy; - } - - public int getRate() { - return this.rate; - } - - public Particle getParticle() { - return this.particle; - } - - public int getParticleId() { - return this.particleId; - } - - public float getFocus() { - return this.focus; - } - - @Override - public String toString() { - return "Energy=" + this.getEnergy() - + ",Rate=" - + this.getRate() - + ",Particle=" - + this.getParticleId() - + ",Focus=" - + this.getFocus(); - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/beamline/BeamLinePacket.java b/src/main/java/com/elisis/gtnhlanth/common/beamline/BeamLinePacket.java deleted file mode 100644 index bbd712a9b0..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/beamline/BeamLinePacket.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.elisis.gtnhlanth.common.beamline; - -import net.minecraft.nbt.NBTTagCompound; - -import com.github.technus.tectech.mechanics.dataTransport.DataPacket; - -public class BeamLinePacket extends DataPacket<BeamInformation> { - - public BeamLinePacket(BeamInformation content) { - super(content); - } - - public BeamLinePacket(NBTTagCompound compound) { - super(compound); - } - - @Override - protected BeamInformation contentFromNBT(NBTTagCompound nbt) { - /* - * NBTTagCompound compound = nbt.getCompoundTag("beamline"); - */ - return new BeamInformation( - nbt.getFloat("energy"), - nbt.getInteger("rate"), - nbt.getInteger("particleId"), - nbt.getInteger("focus")); - } - - @Override - protected NBTTagCompound contentToNBT() { - - NBTTagCompound compound = new NBTTagCompound(); - - compound.setFloat("energy", content.getEnergy()); - compound.setInteger("rate", content.getRate()); - compound.setInteger("particleId", content.getParticleId()); - compound.setFloat("focus", content.getFocus()); - - return compound; - } - - @Override - public boolean extraCheck() { - return true; - } - - @Override - protected BeamInformation unifyContentWith(BeamInformation arg0) { - throw new NoSuchMethodError("Unavailable to unify beam info data packet"); - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/beamline/IConnectsToBeamline.java b/src/main/java/com/elisis/gtnhlanth/common/beamline/IConnectsToBeamline.java deleted file mode 100644 index 763365647c..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/beamline/IConnectsToBeamline.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.elisis.gtnhlanth.common.beamline; - -import net.minecraftforge.common.util.ForgeDirection; - -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; - -public interface IConnectsToBeamline extends IMetaTileEntity { - - boolean canConnect(ForgeDirection side); - - IConnectsToBeamline getNext(IConnectsToBeamline source); - - boolean isDataInputFacing(ForgeDirection side); -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/beamline/Particle.java b/src/main/java/com/elisis/gtnhlanth/common/beamline/Particle.java deleted file mode 100644 index f6bc2517f4..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/beamline/Particle.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.elisis.gtnhlanth.common.beamline; - -import net.minecraft.util.StatCollector; - -public enum Particle { - - ELECTRON(true, 0, 0.511f, 5000, "electron", "e\u207B", -1, null), - PHOTON(false, 1, 0, 0, "photon", "\u03B3", 0, null), - NEUTRON(false, 2, 939.57f, 15000, "neutron", "n\u2070", 0, null), - PROTON(true, 3, 938.27f, 15000, "proton", "p\u207A", 1, null), - ALPHA(true, 4, 3727.38f, 8000, "alpha", "\u03B1", 2, null); - - private boolean canAcc; - - private float restMass; // in MeV - - private float maxSourceEnergy; // in keV - - private String name; - private String shortName; - - private float charge; // in multiples of elemental charge - - private String chargeSpecial; - - private Particle(boolean canAcc, int id, float restMass, float maxSourceEnergy, String name, String shortName, - float charge, String chargeSpecial) { // ID - // is - // symbolic - // only - this.canAcc = canAcc; - this.restMass = restMass; - this.maxSourceEnergy = maxSourceEnergy; - this.name = name; - this.shortName = shortName; - this.charge = charge; - this.chargeSpecial = chargeSpecial; - } - - public float getMass() { - return this.restMass; - } - - public float getCharge() { - return this.charge; - } - - public String getChargeSpecial() { - return this.chargeSpecial; - } - - public boolean canAccelerate() { - return this.canAcc; - } - - public float maxSourceEnergy() { - return this.maxSourceEnergy; - } - - public String getName() { - return this.name; - } - - public String getLocalisedName() { - return StatCollector.translateToLocal("particle." + this.name) + " (" + this.shortName + ")"; - } - - public static Particle getParticleFromId(int id) { - return Particle.values()[id]; - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/beamline/TileBeamline.java b/src/main/java/com/elisis/gtnhlanth/common/beamline/TileBeamline.java deleted file mode 100644 index 058234d2bb..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/beamline/TileBeamline.java +++ /dev/null @@ -1,256 +0,0 @@ -package com.elisis.gtnhlanth.common.beamline; - -import static gregtech.api.enums.Dyes.MACHINE_METAL; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.GT_Mod; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.BaseMetaPipeEntity; -import gregtech.api.metatileentity.MetaPipeEntity; -import gregtech.common.GT_Client; -import gregtech.common.render.GT_TextureBuilder; - -public class TileBeamline extends MetaPipeEntity implements IConnectsToBeamline { - - private static Textures.BlockIcons.CustomIcon pipe; - - private byte connectionCount = 0; - - private boolean active; - - public TileBeamline(int id, String name, String nameRegional) { - super(id, name, nameRegional, 0); - } - - public TileBeamline(String name) { - super(name, 0); - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide()) { - if ((aTick & 31) == 31) { - mConnections = 0; - connectionCount = 0; - - for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - ForgeDirection d1 = dir.getOpposite(); - TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(dir); - if (tTileEntity instanceof IConnectsToBeamline) { - if (((IConnectsToBeamline) tTileEntity).canConnect(d1)) { - mConnections |= 1 << dir.ordinal(); - connectionCount++; - } - } else if (tTileEntity instanceof IGregTechTileEntity) { - IMetaTileEntity meta = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); - if (meta instanceof IConnectsToBeamline) { - if (((IConnectsToBeamline) meta).canConnect(d1)) { - mConnections |= 1 << dir.ordinal(); - connectionCount++; - } - } - } - } - } - } else if (aBaseMetaTileEntity.isClientSide() && GT_Client.changeDetected == 4) { - aBaseMetaTileEntity.issueTextureUpdate(); - } - } - - @Override - public byte getTileEntityBaseType() { - return 7; - } - - @Override - public void loadNBTData(NBTTagCompound arg0) {} - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity arg0) { - return new TileBeamline(mName); - } - - @Override - public void saveNBTData(NBTTagCompound arg0) {} - - @Override - public float getThickNess() { - if (GT_Mod.instance.isClientSide() && GT_Client.hideValue == 1) { - return 0.0625F; - } - return 0.5f; - } - - @Override - public boolean renderInside(ForgeDirection arg0) { - return false; - } - - @Override - public boolean canConnect(ForgeDirection side) { - return true; - } - - // Largely taken from Tec's DataPipe - - @Override - public IConnectsToBeamline getNext(IConnectsToBeamline source) { - - for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - if ((mConnections & 1 << dir.ordinal()) == 0) { - continue; - } - - TileEntity next = this.getBaseMetaTileEntity() - .getTileEntityAtSide(dir); - if (next instanceof IConnectsToBeamline && next != source) { - - if (((IConnectsToBeamline) next).isDataInputFacing(dir.getOpposite())) { - return (IConnectsToBeamline) next; - } - - } else if (next instanceof IGregTechTileEntity) { - - IMetaTileEntity meta = ((IGregTechTileEntity) next).getMetaTileEntity(); - if (meta instanceof IConnectsToBeamline && meta != source) { - - if (meta instanceof TileBeamline && (((TileBeamline) meta).connectionCount == 2)) { - - ((TileBeamline) meta).markUsed(); - return (IConnectsToBeamline) meta; - } - - if (((IConnectsToBeamline) meta).isDataInputFacing(dir.getOpposite())) { - - return (IConnectsToBeamline) meta; - } - } - } - } - - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister aBlockIconRegister) { - pipe = new Textures.BlockIcons.CustomIcon("iconsets/pipe"); - super.registerIcons(aBlockIconRegister); - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection aSide, int aConnections, - int aColorIndex, boolean aConnected, boolean aRedstone) { - return new ITexture[] { new GT_TextureBuilder().addIcon(pipe) - .build(), - new GT_TextureBuilder().addIcon(pipe) - .setRGBA(Dyes.getModulation((byte) aColorIndex, MACHINE_METAL.getRGBA())) - .build() }; - } - - public void markUsed() { - this.active = true; - } - - @Override - public boolean isDataInputFacing(ForgeDirection side) { - return true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - float tSpace = (1f - 0.375f) / 2; - float tSide0 = tSpace; - float tSide1 = 1f - tSpace; - float tSide2 = tSpace; - float tSide3 = 1f - tSpace; - float tSide4 = tSpace; - float tSide5 = 1f - tSpace; - - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.DOWN) != 0) { - tSide0 = tSide2 = tSide4 = 0; - tSide3 = tSide5 = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.UP) != 0) { - tSide2 = tSide4 = 0; - tSide1 = tSide3 = tSide5 = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.NORTH) != 0) { - tSide0 = tSide2 = tSide4 = 0; - tSide1 = tSide5 = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.SOUTH) != 0) { - tSide0 = tSide4 = 0; - tSide1 = tSide3 = tSide5 = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.WEST) != 0) { - tSide0 = tSide2 = tSide4 = 0; - tSide1 = tSide3 = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.EAST) != 0) { - tSide0 = tSide2 = 0; - tSide1 = tSide3 = tSide5 = 1; - } - - byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections; - if ((tConn & 1 << ForgeDirection.DOWN.ordinal()) != 0) { - tSide0 = 0f; - } - if ((tConn & 1 << ForgeDirection.UP.ordinal()) != 0) { - tSide1 = 1f; - } - if ((tConn & 1 << ForgeDirection.NORTH.ordinal()) != 0) { - tSide2 = 0f; - } - if ((tConn & 1 << ForgeDirection.SOUTH.ordinal()) != 0) { - tSide3 = 1f; - } - if ((tConn & 1 << ForgeDirection.WEST.ordinal()) != 0) { - tSide4 = 0f; - } - if ((tConn & 1 << ForgeDirection.EAST.ordinal()) != 0) { - tSide5 = 1f; - } - - return AxisAlignedBB - .getBoundingBox(aX + tSide4, aY + tSide0, aZ + tSide2, aX + tSide5, aY + tSide1, aZ + tSide3); - } - - @Override - public String[] getDescription() { - return new String[] { StatCollector.translateToLocal("beamline.pipe.desc.0"), // Beamline pipe - EnumChatFormatting.AQUA + StatCollector.translateToLocal("beamline.pipe.desc.1"), // Does not cross, split - // or turn - "Added by " + EnumChatFormatting.GREEN + "GTNH: Lanthanides" - - }; - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, - ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, - ItemStack aStack) { - return false; - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/block/AntennaCasing.java b/src/main/java/com/elisis/gtnhlanth/common/block/AntennaCasing.java deleted file mode 100644 index ea7d8423df..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/block/AntennaCasing.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.elisis.gtnhlanth.common.block; - -public class AntennaCasing extends Casing { - - private int antennaTier; - - public AntennaCasing(int tier) { - super("antenna_t" + tier); - this.antennaTier = tier; - } - - public int getTier() { - return this.antennaTier; - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/block/Casing.java b/src/main/java/com/elisis/gtnhlanth/common/block/Casing.java deleted file mode 100644 index 71f581efbe..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/block/Casing.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.elisis.gtnhlanth.common.block; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EnumCreatureType; -import net.minecraft.init.Blocks; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import com.elisis.gtnhlanth.Tags; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.GregTech_API; - -public class Casing extends Block { - - @SideOnly(Side.CLIENT) - protected IIcon[] texture; - - private String name; - - public Casing(String name) { - super(Material.iron); - this.name = name; - this.setBlockTextureName(Tags.MODID + ":casing." + name); - GregTech_API.registerMachineBlock(this, -1); - } - - public Casing(String name, Material material) { - super(material); - this.name = name; - this.setBlockTextureName(Tags.MODID + ":casing." + name); - GregTech_API.registerMachineBlock(this, -1); - } - - @Override - public int damageDropped(int meta) { - return meta; - } - - @Override - public String getHarvestTool(int aMeta) { - return "wrench"; - } - - @Override - public int getHarvestLevel(int aMeta) { - return 2; - } - - @Override - public float getBlockHardness(World aWorld, int aX, int aY, int aZ) { - return Blocks.iron_block.getBlockHardness(aWorld, aX, aY, aZ); - } - - @Override - public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - super.breakBlock(aWorld, aX, aY, aZ, aBlock, aMetaData); - } - - @Override - public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { - super.onBlockAdded(aWorld, aX, aY, aZ); - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - } - - @Override - public String getUnlocalizedName() { - return "casing." + this.name; - } - - @Override - public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { - return false; - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/block/ShieldedAccGlass.java b/src/main/java/com/elisis/gtnhlanth/common/block/ShieldedAccGlass.java deleted file mode 100644 index bdc57f1e59..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/block/ShieldedAccGlass.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.elisis.gtnhlanth.common.block; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EnumCreatureType; -import net.minecraft.init.Blocks; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import com.elisis.gtnhlanth.Tags; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.GregTech_API; - -public class ShieldedAccGlass extends Block { - - private static final String name = "shielded_accelerator_glass"; - - public ShieldedAccGlass() { - super(Material.glass); - this.setBlockName("casing." + name); - this.setBlockTextureName(Tags.MODID + ":casing." + name); - GregTech_API.registerMachineBlock(this, -1); - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public int getRenderBlockPass() { - return 1; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockAdded(World aWorld, int aX, int aY, int aZ) { - if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - } - } - - @Override - public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) { - if (GregTech_API.isMachineBlock(this, aMetaData)) { - GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); - } - } - - @Override - public float getBlockHardness(World aWorld, int aX, int aY, int aZ) { - return Blocks.glass.getBlockHardness(aWorld, aX, aY, aZ); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(IBlockAccess worldClient, int xCoord, int yCoord, int zCoord, int aSide) { - if (worldClient.getBlock(xCoord, yCoord, zCoord) instanceof ShieldedAccGlass) return false; - return super.shouldSideBeRendered(worldClient, xCoord, yCoord, zCoord, aSide); - } - - @Override - public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { - return false; - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/hatch/TileBusInputFocus.java b/src/main/java/com/elisis/gtnhlanth/common/hatch/TileBusInputFocus.java deleted file mode 100644 index 43a6df9366..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/hatch/TileBusInputFocus.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.elisis.gtnhlanth.common.hatch; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - -import com.elisis.gtnhlanth.common.item.ICanFocus; -import com.elisis.gtnhlanth.util.Util; - -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.objects.GT_RenderedTexture; -import gtPlusPlus.api.objects.data.AutoMap; -import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.nbthandlers.GT_MetaTileEntity_Hatch_NbtConsumable; -import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; - -public class TileBusInputFocus extends GT_MetaTileEntity_Hatch_NbtConsumable { - - private static final int INPUT_SLOTS = 4; - - public TileBusInputFocus(int id, String name, String nameRegional) { - super(id, name, nameRegional, 0, INPUT_SLOTS, "Input Bus for Foci", false); - } - - public TileBusInputFocus(String name, String[] descriptionArray, ITexture[][][] textures) { - super(name, 0, INPUT_SLOTS, descriptionArray, false, textures); - } - - @Override - public int getInputSlotCount() { - return INPUT_SLOTS; - } - - @Override - public boolean isFacingValid(ForgeDirection facing) { - return true; - } - - @Override - public AutoMap<ItemStack> getItemsValidForUsageSlots() { - return new AutoMap<>(); - } - - @Override - public boolean isItemValidForUsageSlot(ItemStack aStack) { - - if (this.getContentUsageSlots() - .size() == 0) { - return aStack.getItem() instanceof ICanFocus; - } else { - return false; - } - - } - - @Override - public String getNameGUI() { - return "Focus Input Bus"; - } - - public void depleteFocusDurability(int damage) { - - ItemStack stack = this.getContentUsageSlots() - .toArray()[0]; - - Util.depleteDurabilityOfStack(stack, damage); - - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] { aBaseTexture, new GT_RenderedTexture(TexturesGtBlock.Overlay_Bus_Catalyst) }; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] { aBaseTexture, new GT_RenderedTexture(TexturesGtBlock.Overlay_Bus_Catalyst) }; - } - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new TileBusInputFocus(mName, mDescriptionArray, mTextures); - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/hatch/TileHatchBeamlineConnector.java b/src/main/java/com/elisis/gtnhlanth/common/hatch/TileHatchBeamlineConnector.java deleted file mode 100644 index 0c9cb9ad51..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/hatch/TileHatchBeamlineConnector.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.elisis.gtnhlanth.common.hatch; - -import static com.github.technus.tectech.util.CommonValues.MOVE_AT; -import static net.minecraft.util.StatCollector.translateToLocalFormatted; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.fluids.FluidStack; - -import org.apache.commons.lang3.reflect.FieldUtils; - -import com.elisis.gtnhlanth.common.beamline.IConnectsToBeamline; -import com.github.technus.tectech.mechanics.dataTransport.DataPacket; -import com.github.technus.tectech.util.TT_Utility; - -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; - -public abstract class TileHatchBeamlineConnector<T extends DataPacket> extends GT_MetaTileEntity_Hatch - implements IConnectsToBeamline { - - private String clientLocale = "en_US"; - - public T q; - - public short id = -1; - - protected TileHatchBeamlineConnector(int aID, String aName, String aNameRegional, int aTier, String descr) { - super(aID, aName, aNameRegional, aTier, 0, descr); - TT_Utility.setTier(aTier, this); - } - - protected TileHatchBeamlineConnector(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aTier, 0, aDescription, aTextures); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - aNBT.setShort("eID", id); - if (q != null) { - aNBT.setTag("eDATA", q.toNbt()); - } - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); - id = aNBT.getShort("eID"); - if (aNBT.hasKey("eDATA")) { - q = loadPacketFromNBT(aNBT.getCompoundTag("eDATA")); - } - } - - protected abstract T loadPacketFromNBT(NBTTagCompound nbt); - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (aBaseMetaTileEntity.isServerSide()) { - if (MOVE_AT == aTick % 20) { - if (q == null) { - getBaseMetaTileEntity().setActive(false); - } else { - getBaseMetaTileEntity().setActive(true); - moveAround(aBaseMetaTileEntity); - } - } - } - } - - public abstract void moveAround(IGregTechTileEntity aBaseMetaTileEntity); - - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - try { - EntityPlayerMP player = (EntityPlayerMP) aPlayer; - clientLocale = (String) FieldUtils.readField(player, "translator", true); - } catch (Exception e) { - clientLocale = "en_US"; - } - return true; - } - - @Override - public boolean isAccessAllowed(EntityPlayer aPlayer) { - return true; - } - - @Override - public boolean isFluidInputAllowed(FluidStack aFluid) { - return false; - } - - @Override - public boolean isValidSlot(int aIndex) { - return false; - } - - @Override - public boolean isGivingInformation() { - return true; - } - - @Override - public String[] getInfoData() { - if (id > 0) { - return new String[] { - translateToLocalFormatted("tt.keyword.ID", clientLocale) + ": " + EnumChatFormatting.AQUA + id, - translateToLocalFormatted("tt.keyword.Content", clientLocale) + ": " - + EnumChatFormatting.AQUA - + (q != null ? q.getContentString() : 0), - translateToLocalFormatted("tt.keyword.PacketHistory", clientLocale) + ": " - + EnumChatFormatting.RED - + (q != null ? q.getTraceSize() : 0), }; - } - return new String[] { - translateToLocalFormatted("tt.keyword.Content", clientLocale) + ": " - + EnumChatFormatting.AQUA - + (q != null ? q.getContentString() : 0), - translateToLocalFormatted("tt.keyword.PacketHistory", clientLocale) + ": " - + EnumChatFormatting.RED - + (q != null ? q.getTraceSize() : 0), }; - } - - @Override - public String[] getDescription() { - return new String[] { "Text description shouldn't be seen, report to Tec", "High speed fibre optics connector.", - EnumChatFormatting.AQUA + "Must be painted to work" }; - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/hatch/TileHatchInputBeamline.java b/src/main/java/com/elisis/gtnhlanth/common/hatch/TileHatchInputBeamline.java deleted file mode 100644 index ffa0ecf56c..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/hatch/TileHatchInputBeamline.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.elisis.gtnhlanth.common.hatch; - -import static gregtech.api.enums.Dyes.MACHINE_METAL; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - -import com.elisis.gtnhlanth.common.beamline.BeamLinePacket; -import com.elisis.gtnhlanth.common.beamline.IConnectsToBeamline; -import com.github.technus.tectech.util.TT_Utility; - -import gregtech.api.enums.Dyes; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.objects.GT_RenderedTexture; - -public class TileHatchInputBeamline extends TileHatchBeamlineConnector<BeamLinePacket> { - - private boolean delay = true; - - private static final String activeIconPath = "iconsets/OVERLAY_BI_ACTIVE"; - private static final String sideIconPath = "iconsets/OVERLAY_BI_SIDES"; - private static final String connIconPath = "iconsets/BI_CONN"; - - private static final Textures.BlockIcons.CustomIcon activeIcon = new Textures.BlockIcons.CustomIcon(activeIconPath); - private static final Textures.BlockIcons.CustomIcon sideIcon = new Textures.BlockIcons.CustomIcon(sideIconPath); - private static final Textures.BlockIcons.CustomIcon connIcon = new Textures.BlockIcons.CustomIcon(connIconPath); - - public TileHatchInputBeamline(int id, String name, String nameRegional, int tier) { - - super(id, name, nameRegional, tier, ""); - TT_Utility.setTier(tier, this); - } - - public TileHatchInputBeamline(String name, int tier, String[] desc, ITexture[][][] textures) { - super(name, tier, desc, textures); - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] { aBaseTexture, - new GT_RenderedTexture( - activeIcon, - Dyes.getModulation(getBaseMetaTileEntity().getColorization(), MACHINE_METAL.getRGBA())), - new GT_RenderedTexture(connIcon) }; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] { aBaseTexture, - new GT_RenderedTexture( - sideIcon, - Dyes.getModulation(getBaseMetaTileEntity().getColorization(), MACHINE_METAL.getRGBA())), - new GT_RenderedTexture(connIcon) }; - } - - @Override - public MetaTileEntity newMetaEntity(IGregTechTileEntity tile) { - return new TileHatchInputBeamline(mName, mTier, mDescriptionArray, mTextures); - } - - @Override - protected BeamLinePacket loadPacketFromNBT(NBTTagCompound tag) { - return new BeamLinePacket(tag); - } - - @Override - public boolean isInputFacing(ForgeDirection side) { - return side == getBaseMetaTileEntity().getFrontFacing(); - } - - @Override - public boolean isDataInputFacing(ForgeDirection side) { - return isInputFacing(side); - } - - @Override - public boolean isOutputFacing(ForgeDirection aSide) { - return false; - } - - @Override - public boolean isFacingValid(ForgeDirection facing) { - return true; - } - - @Override - public boolean isSimpleMachine() { - return true; - } - - @Override - public boolean canConnect(ForgeDirection side) { - return isInputFacing(side); - } - - @Override - public IConnectsToBeamline getNext(IConnectsToBeamline source) { - return null; - } - - @Override - public String[] getDescription() { - return null; - } - - public void setContents(BeamLinePacket in) { - if (in == null) { - this.q = null; - } else { - if (in.getContent() - .getRate() > 0) { - this.q = in; - delay = true; - } else { - this.q = null; - } - } - } - - @Override - public void moveAround(IGregTechTileEntity tile) { - if (delay) { - delay = false; - } else { - this.setContents(null); - } - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/hatch/TileHatchOutputBeamline.java b/src/main/java/com/elisis/gtnhlanth/common/hatch/TileHatchOutputBeamline.java deleted file mode 100644 index 31a18ea58d..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/hatch/TileHatchOutputBeamline.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.elisis.gtnhlanth.common.hatch; - -import static gregtech.api.enums.Dyes.MACHINE_METAL; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - -import com.elisis.gtnhlanth.common.beamline.BeamLinePacket; -import com.elisis.gtnhlanth.common.beamline.IConnectsToBeamline; -import com.elisis.gtnhlanth.common.beamline.TileBeamline; -import com.github.technus.tectech.util.TT_Utility; - -import gregtech.api.enums.Dyes; -import gregtech.api.enums.Textures; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.objects.GT_RenderedTexture; - -public class TileHatchOutputBeamline extends TileHatchBeamlineConnector<BeamLinePacket> implements IConnectsToBeamline { - - private static final String activeIconPath = "iconsets/OVERLAY_BO_ACTIVE"; - private static final String sideIconPath = "iconsets/OVERLAY_BO_SIDES"; - private static final String connIconPath = "iconsets/BO_CONN"; - - private static final Textures.BlockIcons.CustomIcon activeIcon = new Textures.BlockIcons.CustomIcon(activeIconPath); - private static final Textures.BlockIcons.CustomIcon sideIcon = new Textures.BlockIcons.CustomIcon(sideIconPath); - private static final Textures.BlockIcons.CustomIcon connIcon = new Textures.BlockIcons.CustomIcon(connIconPath); - - public TileHatchOutputBeamline(int id, String name, String nameRegional, int tier) { - super(id, name, nameRegional, tier, ""); - TT_Utility.setTier(tier, this); - } - - public TileHatchOutputBeamline(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { - super(aName, aTier, aDescription, aTextures); - } - - @Override - public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[] { aBaseTexture, - new GT_RenderedTexture( - activeIcon, - Dyes.getModulation(getBaseMetaTileEntity().getColorization(), MACHINE_METAL.getRGBA())), - new GT_RenderedTexture(connIcon) }; - } - - @Override - public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[] { aBaseTexture, - new GT_RenderedTexture( - sideIcon, - Dyes.getModulation(getBaseMetaTileEntity().getColorization(), MACHINE_METAL.getRGBA())), - new GT_RenderedTexture(connIcon) }; - } - - @Override - public IConnectsToBeamline getNext(IConnectsToBeamline source) { - - IGregTechTileEntity base = this.getBaseMetaTileEntity(); - IGregTechTileEntity next = base.getIGregTechTileEntityAtSide(base.getFrontFacing()); - - if (next == null) { - return null; - } - - IMetaTileEntity meta = next.getMetaTileEntity(); - if (meta instanceof TileBeamline) { - - ((TileBeamline) meta).markUsed(); - return (IConnectsToBeamline) meta; - - } else if (meta instanceof TileHatchInputBeamline && ((TileHatchInputBeamline) meta).canConnect( - base.getFrontFacing() - .getOpposite())) { - - return (IConnectsToBeamline) meta; - } - - return null; - } - - @Override - public void moveAround(IGregTechTileEntity aBaseMetaTileEntity) { - IConnectsToBeamline current = this, source = this, next; - int range = 0; - while ((next = current.getNext(source)) != null && range++ < 100) { - if (next instanceof TileHatchInputBeamline) { - ((TileHatchInputBeamline) next).setContents(q); - break; - } - source = current; - current = next; - } - q = null; - } - - @Override - protected BeamLinePacket loadPacketFromNBT(NBTTagCompound nbt) { - return new BeamLinePacket(nbt); - } - - @Override - public boolean canConnect(ForgeDirection side) { - return this.isOutputFacing(side); - } - - @Override - public boolean isDataInputFacing(ForgeDirection side) { - return this.isInputFacing(side); - } - - @Override - public boolean isFacingValid(ForgeDirection facing) { - return true; - } - - @Override - public boolean isInputFacing(ForgeDirection aSide) { - return false; - } - - @Override - public boolean isOutputFacing(ForgeDirection side) { - return side == this.getBaseMetaTileEntity() - .getFrontFacing(); - } - - @Override - public String[] getDescription() { - return null; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity arg0) { - return new TileHatchOutputBeamline(mName, mTier, mDescriptionArray, mTextures); - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/item/ICanFocus.java b/src/main/java/com/elisis/gtnhlanth/common/item/ICanFocus.java deleted file mode 100644 index 21cdb636c5..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/item/ICanFocus.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.elisis.gtnhlanth.common.item; - -public interface ICanFocus { - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/item/LanthItem.java b/src/main/java/com/elisis/gtnhlanth/common/item/LanthItem.java deleted file mode 100644 index 062b9b1a91..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/item/LanthItem.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.elisis.gtnhlanth.common.item; - -import net.minecraft.item.Item; - -import com.elisis.gtnhlanth.Tags; - -public class LanthItem extends Item { - - public LanthItem(String name) { - super(); - this.setUnlocalizedName(name); - this.setTextureName(Tags.MODID + ":" + name); - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/item/MaskList.java b/src/main/java/com/elisis/gtnhlanth/common/item/MaskList.java deleted file mode 100644 index 18423565ca..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/item/MaskList.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.elisis.gtnhlanth.common.item; - -import net.minecraft.item.ItemStack; - -import gregtech.api.enums.Dyes; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.TierEU; - -public enum MaskList { - - // There are absolutely better ways of doing this than a GT Materials-esque Enum, some method of automatically - // scraping the wafer types would be preferable in particular - // Use Dyes._NULL to indicate a wafer's lack of a dedicated lens instead of null, if the wafer's mask is to be - // generated - // Ignore last argument if using all wafers - ERROR("error", "ERROR", 0, "", null, null, 0, 0, 0, 0, 0, null), - BLANK1("blank1", "T1 Blank", 0, "VISIBLE", null, null, 0, 0, 0, 0, 0, null), - BLANK2("blank2", "T2 Blank", 0, "UV", null, null, 0, 0, 0, 0, 0, null), - BLANK3("blank3", "T3 Blank", 0, "X-RAY", null, null, 0, 0, 0, 0, 0, null), - ILC("ilc", "Integrated Logic Circuit", 100, "", BLANK1, Dyes.dyeRed, TierEU.RECIPE_MV, 0.5e-3f, 4e-3f, 35, 1, - ItemList.Circuit_Wafer_ILC.get(1)), - RAM("ram", "Random Access Memory", 200, "", BLANK1, Dyes.dyeCyan, TierEU.RECIPE_MV, 2e-3f, 4e-3f, 40, 2, - ItemList.Circuit_Wafer_Ram.get(1), ItemList.Circuit_Silicon_Wafer), - NAND("nand", "NAND", 200, "", BLANK2, Dyes._NULL, TierEU.RECIPE_HV, 7e-3f, 12e-3f, 40, 1, - ItemList.Circuit_Wafer_NAND.get(1), ItemList.Circuit_Silicon_Wafer), // NAND uses only Ender Pearl lens, don't - // ask me why - NOR("nor", "NOR", 100, "", BLANK2, Dyes._NULL, TierEU.RECIPE_LuV, 8e-3f, 10e-3f, 40, 1, - ItemList.Circuit_Wafer_NOR.get(1), ItemList.Circuit_Silicon_Wafer, ItemList.Circuit_Silicon_Wafer2), // Same as - // above, - // but with - // ender - // eye - CPU("cpu", "Central Processing Unit", 10, "", BLANK2, Dyes.dyeWhite, TierEU.RECIPE_MV, 6e-3f, 12e-3f, 45, 2, - ItemList.Circuit_Wafer_CPU.get(1)), - SOC("soc", "SoC", 150, "", BLANK2, Dyes.dyeYellow, TierEU.RECIPE_EV, 3e-3f, 10e-3f, 45, 2, - ItemList.Circuit_Wafer_SoC.get(1), ItemList.Circuit_Silicon_Wafer, ItemList.Circuit_Silicon_Wafer2), - ASOC("asoc", "Advanced SoC", 120, "", BLANK2, Dyes.dyeGreen, TierEU.RECIPE_EV, 100e-3f, 200e-3f, 50, 2, - ItemList.Circuit_Wafer_SoC2.get(1), ItemList.Circuit_Silicon_Wafer, ItemList.Circuit_Silicon_Wafer2), - PIC("pic", "Power IC", 100, "", BLANK2, Dyes.dyeBlue, TierEU.RECIPE_HV, 5e-3f, 10e-3f, 50, 4, - ItemList.Circuit_Wafer_PIC.get(1), ItemList.Circuit_Silicon_Wafer), - HPIC("hpic", "High Power IC", 80, "", BLANK3, null, TierEU.RECIPE_IV, 100e-3f, 200e-3f, 50, 6, - ItemList.Circuit_Wafer_HPIC.get(1), ItemList.Circuit_Silicon_Wafer), // Different, made in chemical reactor. - // Figure out something for - // this later? - NCPU("ncpu", "NanoCPU", 60, "", BLANK2, null, TierEU.RECIPE_EV, 5e-3f, 10e-3f, 50, 4, - ItemList.Circuit_Wafer_NanoCPU.get(1), ItemList.Circuit_Silicon_Wafer), // Same as above - QBIT("qbit", "QBit", 50, "", BLANK2, null, TierEU.RECIPE_EV, 3e-3f, 10e-3f, 50, 4, - ItemList.Circuit_Wafer_QuantumCPU.get(1), ItemList.Circuit_Silicon_Wafer), // ^ - UHPIC("uhpic", "Ultra High Power IC", 60, "", BLANK3, null, TierEU.RECIPE_LuV, 200e-3f, 400e-3f, 50, 8, - ItemList.Circuit_Wafer_UHPIC.get(1), ItemList.Circuit_Silicon_Wafer, ItemList.Circuit_Silicon_Wafer2), // You - // get - // the - // gist - SSOC("ssoc", "Simple SoC", 150, "", BLANK1, Dyes.dyeOrange, TierEU.RECIPE_MV, 2e-3f, 4e-3f, 25, 1, - ItemList.Circuit_Wafer_Simple_SoC.get(1)), - ULPIC("ulpic", "Ultra Low Power IC", 200, "", BLANK1, Dyes.dyeGreen, TierEU.RECIPE_LV, 2e-3f, 4e-3f, 30, 1, - ItemList.Circuit_Wafer_ULPIC.get(1)), // Can use green for this as well as asoc, given - // the latter uses a different base mask - LPIC("lpic", "Low Power IC", 150, "", BLANK1, Dyes.dyeYellow, TierEU.RECIPE_MV, 2e-3f, 4e-3f, 30, 2, - ItemList.Circuit_Wafer_LPIC.get(1)), // Same as above, except for yellow - NPIC("npic", "Nano Power IC", 70, "", BLANK3, Dyes.dyeRed, TierEU.RECIPE_LuV, 1, 100000, 50, 4, - ItemList.Circuit_Wafer_NPIC.get(1), ItemList.Circuit_Silicon_Wafer, ItemList.Circuit_Silicon_Wafer2, - ItemList.Circuit_Silicon_Wafer3), // Same - PPIC("ppic", "PPIC", 50, "", BLANK3, null, TierEU.RECIPE_ZPM, 10, 15, 50, 6, ItemList.Circuit_Wafer_PPIC.get(1), - ItemList.Circuit_Silicon_Wafer, ItemList.Circuit_Silicon_Wafer2, ItemList.Circuit_Silicon_Wafer3), // CR - // recipe - QPIC("qpic", "QPIC", 50, "", BLANK3, Dyes.dyeBlue, TierEU.RECIPE_UV, 5, 9, 50, 6, - ItemList.Circuit_Wafer_QPIC.get(1), ItemList.Circuit_Silicon_Wafer, ItemList.Circuit_Silicon_Wafer2, - ItemList.Circuit_Silicon_Wafer3, ItemList.Circuit_Silicon_Wafer4); // Different base mask to PIC - - String name; - String englishName; - String spectrum; - - int maxDamage; - - MaskList precursor; - Dyes lensColour; - - long engraverEUt; - - float minEnergy; - float maxEnergy; - - float minFocus; - int baselineAmount; - - ItemStack producedItem; - - ItemList[] forbiddenWafers; - - MaskList(String name, String englishName, int maxDamage, String spectrum, MaskList precursor, Dyes lensColour, - long engraverEUt, float minEnergy, float maxEnergy, float minFocus, int baselineAmount, ItemStack producedItem, - ItemList... forbiddenWafers) { - this.name = name; - this.englishName = englishName; - this.spectrum = spectrum; - this.maxDamage = maxDamage; - this.precursor = precursor; - this.lensColour = lensColour; - this.engraverEUt = engraverEUt; - this.minFocus = minFocus; - this.minEnergy = minEnergy; - this.maxEnergy = maxEnergy; - this.baselineAmount = baselineAmount; - this.producedItem = producedItem; - this.forbiddenWafers = forbiddenWafers; - } - - public String getName() { - return this.name; - } - - public String getEnglishName() { - return this.englishName; - } - - public String getSpectrum() { - return this.spectrum; - } - - public int getDamage() { - return this.maxDamage; - } - - public MaskList getPrecursor() { - return this.precursor; - } - - public Dyes getLensColour() { - return this.lensColour; - } - - public long getEngraverEUt() { - return this.engraverEUt; - } - - public float getMinEnergy() { - return this.minEnergy; - } - - public float getMaxEnergy() { - return this.maxEnergy; - } - - public float getMinFocus() { - return this.minFocus; - } - - public int getBaselineAmount() { - return this.baselineAmount; - } - - public ItemStack getProducedItem() { - return this.producedItem; - } - - public ItemList[] getForbiddenWafers() { - return this.forbiddenWafers; - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/item/ParticleItem.java b/src/main/java/com/elisis/gtnhlanth/common/item/ParticleItem.java deleted file mode 100644 index b6484b93a5..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/item/ParticleItem.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.elisis.gtnhlanth.common.item; - -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 net.minecraft.util.MathHelper; - -import com.elisis.gtnhlanth.Tags; -import com.elisis.gtnhlanth.common.beamline.Particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ParticleItem extends Item { - - public static final int NUMBER_OF_SUBTYPES = Particle.values().length; - - private static String[] names = new String[NUMBER_OF_SUBTYPES]; - - static { - populateNamesArray(); - } - - @SideOnly(Side.CLIENT) - private IIcon[] iconArray; - - public ParticleItem() { - - this.setHasSubtypes(true); - this.setMaxDamage(0); - - } - - @SideOnly(Side.CLIENT) - @Override - public IIcon getIconFromDamage(int damage) { - int j = MathHelper.clamp_int(damage, 0, NUMBER_OF_SUBTYPES - 1); - return this.iconArray[j]; - } - - public String getUnlocalizedName(ItemStack stack) { - int i = MathHelper.clamp_int(stack.getItemDamage(), 0, NUMBER_OF_SUBTYPES - 1); - return super.getUnlocalizedName() + "." + names[i]; - } - - @SuppressWarnings({ "unchecked", "rawtypes" }) - @SideOnly(Side.CLIENT) - @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { - for (int i = 0; i < NUMBER_OF_SUBTYPES; ++i) { - list.add(new ItemStack(item, 1, i)); - } - } - - @SideOnly(Side.CLIENT) - @Override - public void registerIcons(IIconRegister register) { - this.iconArray = new IIcon[NUMBER_OF_SUBTYPES]; - - for (int i = 0; i < NUMBER_OF_SUBTYPES; ++i) { - this.iconArray[i] = register.registerIcon(Tags.MODID + ":" + "particle/" + names[i]); - } - } - - @SideOnly(Side.CLIENT) - @Override - public String getItemStackDisplayName(ItemStack stack) { - - int i = MathHelper.clamp_int(stack.getItemDamage(), 0, NUMBER_OF_SUBTYPES - 1); - - Particle particle = Particle.values()[i]; - - return particle.getLocalisedName(); - - } - - @SuppressWarnings({ "rawtypes", "unchecked" }) - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - int i = MathHelper.clamp_int(stack.getItemDamage(), 0, NUMBER_OF_SUBTYPES - 1); - - Particle particle = Particle.values()[i]; - - float restMass = particle.getMass(); - - float charge = particle.getCharge(); - - String chargeSpecial = particle.getChargeSpecial(); - - String chargeStringToAppend; - if (chargeSpecial != null) { - - chargeStringToAppend = chargeSpecial; - - } else { - - if (charge > 0) chargeStringToAppend = "+" + charge; - else chargeStringToAppend = "" + charge; - } - - list.add("Rest Mass: " + restMass + " MeV"); - list.add("Charge: " + chargeStringToAppend + "e"); - - } - - private static void populateNamesArray() { - - for (int i = 0; i < NUMBER_OF_SUBTYPES; i++) { - - Particle particle = Particle.values()[i]; - - names[i] = particle.getName(); - - } - - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/item/PhotolithographicMask.java b/src/main/java/com/elisis/gtnhlanth/common/item/PhotolithographicMask.java deleted file mode 100644 index 239231ad3c..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/item/PhotolithographicMask.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.elisis.gtnhlanth.common.item; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import com.elisis.gtnhlanth.Tags; - -public class PhotolithographicMask extends Item implements ICanFocus { - - private String name; - private String descSpectrum; - - public PhotolithographicMask(String name, int maxDamage, String descSpectrum) { - super(); - this.name = name; - this.descSpectrum = descSpectrum; - this.setUnlocalizedName("photomask." + name); - this.setMaxStackSize(1); - this.setMaxDamage(maxDamage); - this.setTextureName(Tags.MODID + ":photomask/" + name); - } - - /* - * @Override public String getUnlocalizedName() { return "item.photomask." + this.name; } - */ - @SuppressWarnings({ "rawtypes", "unchecked" }) - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - if (!this.descSpectrum.isEmpty()) - list.add("Suitable for the " + this.descSpectrum + " segment of the electromagnetic spectrum and lower"); - - } - - public String getDescSpectrum() { - return descSpectrum; - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/register/BotWerkstoffMaterialPool.java b/src/main/java/com/elisis/gtnhlanth/common/register/BotWerkstoffMaterialPool.java deleted file mode 100644 index 41a9392274..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/register/BotWerkstoffMaterialPool.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.elisis.gtnhlanth.common.register; - -import static com.github.bartimaeusnek.bartworks.system.material.Werkstoff.Types.*; -import static com.github.bartimaeusnek.bartworks.util.BW_Util.subscriptNumbers; -import static gregtech.api.enums.Materials.*; -import static gregtech.api.enums.TextureSet.*; - -import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; -import com.github.bartimaeusnek.bartworks.util.Pair; - -/* - * Originally authored by botn365 under the MIT License. See BotdustriesLICENSE - */ -@SuppressWarnings("unchecked") -public class BotWerkstoffMaterialPool implements Runnable { - - public static final Werkstoff TungsticAcid = new Werkstoff( - new short[] { 0xf5, 0xf1, 0x16 }, - "Tungstic Acid", - new Werkstoff.Stats(), - COMPOUND, - new Werkstoff.GenerationFeatures().onlyDust() - .enforceUnification(), - 29900, - SET_SHINY, - new Pair<>(Hydrogen, 2), - new Pair<>(Tungsten, 1), - new Pair<>(Oxygen, 4)); - public static final Werkstoff TungstenTrioxide = new Werkstoff( - new short[] { 0x0f, 0x5, 0x16 }, - "Tungsten Trioxide", - new Werkstoff.Stats(), - COMPOUND, - new Werkstoff.GenerationFeatures().onlyDust() - .enforceUnification(), - 29901, - SET_SHINY, - new Pair<>(Tungsten, 1), - new Pair<>(Oxygen, 3)); - public static final Werkstoff AmmoniumNitrate = new Werkstoff( - new short[] { 0x81, 0xcc, 0x00 }, - "Ammonium Nitrate", - new Werkstoff.Stats(), - COMPOUND, - new Werkstoff.GenerationFeatures().onlyDust(), - 29903, - SET_FINE, - new Pair<>(Nitrogen, 1), - new Pair<>(Hydrogen, 4), - new Pair<>(Nitrogen, 1), - new Pair<>(Oxygen, 3)); - public static final Werkstoff SodiumTungstate = new Werkstoff( - new short[] { 0xc, 0xed, 0xd7, 0 }, - "Sodium Tungstate", - subscriptNumbers("Na2WO4"), - new Werkstoff.Stats(), - COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - 29904, - SET_FINE); - public static final Werkstoff Phosgene = new Werkstoff( - new short[] { 0x15, 0xa1, 0x1a }, - "Phosgene", - subscriptNumbers("COCl2"), - new Werkstoff.Stats(), - COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - 29905, - SET_FINE); - public static final Werkstoff Nitromethane = new Werkstoff( - new short[] { 0x87, 0x7d, 0x60 }, - "Nitromethane", - subscriptNumbers("CH3NO2"), - new Werkstoff.Stats(), - COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - 29914, - SET_METALLIC); - - @Override - public void run() { - // TODO Auto-generated method stub - - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/register/LanthItemList.java b/src/main/java/com/elisis/gtnhlanth/common/register/LanthItemList.java deleted file mode 100644 index 2d5d976fea..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/register/LanthItemList.java +++ /dev/null @@ -1,172 +0,0 @@ -package com.elisis.gtnhlanth.common.register; - -import java.util.HashMap; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import com.elisis.gtnhlanth.common.beamline.TileBeamline; -import com.elisis.gtnhlanth.common.block.AntennaCasing; -import com.elisis.gtnhlanth.common.block.Casing; -import com.elisis.gtnhlanth.common.block.ShieldedAccGlass; -import com.elisis.gtnhlanth.common.hatch.TileBusInputFocus; -import com.elisis.gtnhlanth.common.hatch.TileHatchInputBeamline; -import com.elisis.gtnhlanth.common.hatch.TileHatchOutputBeamline; -import com.elisis.gtnhlanth.common.item.LanthItem; -import com.elisis.gtnhlanth.common.item.MaskList; -import com.elisis.gtnhlanth.common.item.ParticleItem; -import com.elisis.gtnhlanth.common.item.PhotolithographicMask; -import com.elisis.gtnhlanth.common.tileentity.Digester; -import com.elisis.gtnhlanth.common.tileentity.DissolutionTank; -import com.elisis.gtnhlanth.common.tileentity.LINAC; -import com.elisis.gtnhlanth.common.tileentity.SourceChamber; -import com.elisis.gtnhlanth.common.tileentity.Synchrotron; -import com.elisis.gtnhlanth.common.tileentity.TargetChamber; - -import cpw.mods.fml.common.registry.GameRegistry; -import gregtech.api.util.GT_LanguageManager; - -public final class LanthItemList { - - public static ItemStack DIGESTER; - public static ItemStack DISSOLUTION_TANK; - - public static ItemStack LINAC; - public static ItemStack SOURCE_CHAMBER; - - public static ItemStack SYNCHROTRON; - - public static ItemStack TARGET_CHAMBER; - - public static ItemStack BEAMLINE_PIPE; - - public static ItemStack LUV_BEAMLINE_INPUT_HATCH; - public static ItemStack LUV_BEAMLINE_OUTPUT_HATCH; - - public static ItemStack BEAMLINE_FOCUS_INPUT_BUS; - - public static Item CAPILLARY_EXCHANGE = new LanthItem("capillary_exchange"); - - public static Item MM_LATTICE = new LanthItem("mm_lattice"); - - public static Item IRON_COATED_QUARTZ = new LanthItem("iron_quartz_plate"); - - public static Item SUBSTRATE_PRECURSOR = new LanthItem("substrate_precursor"); - - public static Item MASK_SUBSTRATE = new LanthItem("mask_substrate"); - - public static Item MASKED_MASK = new LanthItem("masked_mask_substrate"); - - public static Item ETCHED_MASK_1 = new LanthItem("etched_mask1"); - - public static Item SILICON_NITRIDE_MEMBRANE = new LanthItem("nitride_gold_membrane"); - - public static Item PARTICLE_ITEM = new ParticleItem().setUnlocalizedName("particle"); - - public static final Block SHIELDED_ACCELERATOR_CASING = new Casing("shielded_accelerator"); - public static final Block SHIELDED_ACCELERATOR_GLASS = new ShieldedAccGlass(); - - public static final Block ELECTRODE_CASING = new Casing("electrode"); - - public static final Block COOLANT_DELIVERY_CASING = new Casing("coolant_delivery"); - - // public static final Block ANTENNA_CASING_T1 = new Casing("antenna_t1"); - public static final Block ANTENNA_CASING_T1 = new AntennaCasing(1); - public static final Block ANTENNA_CASING_T2 = new AntennaCasing(2); - - public static final Block NIOBIUM_CAVITY_CASING = new Casing("niobium_cavity"); - - public static final Block FOCUS_MANIPULATION_CASING = new Casing("focus_manipulator"); - public static final Block FOCUS_HOLDER = new Casing("focus_holder"); - - public static final Block TARGET_RECEPTACLE_CASING = new Casing("target_receptacle"); - public static final Block TARGET_HOLDER = new Casing("target_holder"); - - public static HashMap<MaskList, Item> maskMap = new HashMap<>(); - - public static void registerGTMTE() { - - DIGESTER = new Digester(10500, "Digester", "Digester").getStackForm(1L); - DISSOLUTION_TANK = new DissolutionTank(10501, "Dissolution Tank", "Dissolution Tank").getStackForm(1L); - - BEAMLINE_PIPE = new TileBeamline(10502, "Beamline Pipe", "Beamline Pipe").getStackForm(1L); - LUV_BEAMLINE_INPUT_HATCH = new TileHatchInputBeamline( - 10503, - "LuV Beamline Input Hatch", - "LuV Beamline Input Hatch", - 6).getStackForm(1L); - LUV_BEAMLINE_OUTPUT_HATCH = new TileHatchOutputBeamline( - 10504, - "LuV Beamline Output Hatch", - "LuV Beamline Output Hatch", - 6).getStackForm(1L); - - BEAMLINE_FOCUS_INPUT_BUS = new TileBusInputFocus(10509, "Focus Input Bus", "Focus Input Bus").getStackForm(1L); - - LINAC = new LINAC(10505, "Linear Accelerator", "Linear Accelerator").getStackForm(1L); - - SOURCE_CHAMBER = new SourceChamber(10506, "Source Chamber", "Source Chamber").getStackForm(1L); - - SYNCHROTRON = new Synchrotron(10507, "Synchrotron", "Synchrotron").getStackForm(1L); - - TARGET_CHAMBER = new TargetChamber(10508, "Target Chamber", "Target Chamber").getStackForm(1L); - } - - public static void registerTypical() { - - GameRegistry.registerItem(CAPILLARY_EXCHANGE, CAPILLARY_EXCHANGE.getUnlocalizedName()); - - GameRegistry.registerItem(MM_LATTICE, MM_LATTICE.getUnlocalizedName()); - - GameRegistry.registerItem(IRON_COATED_QUARTZ, IRON_COATED_QUARTZ.getUnlocalizedName()); - - GameRegistry.registerItem(MASK_SUBSTRATE, MASK_SUBSTRATE.getUnlocalizedName()); - - GameRegistry.registerItem(ETCHED_MASK_1, ETCHED_MASK_1.getUnlocalizedName()); - - GameRegistry.registerItem(SUBSTRATE_PRECURSOR, SUBSTRATE_PRECURSOR.getUnlocalizedName()); - - GameRegistry.registerItem(MASKED_MASK, MASKED_MASK.getUnlocalizedName()); - - GameRegistry.registerItem(PARTICLE_ITEM, "particle"); - - GameRegistry.registerBlock(SHIELDED_ACCELERATOR_CASING, SHIELDED_ACCELERATOR_CASING.getUnlocalizedName()); - - GameRegistry.registerBlock(ELECTRODE_CASING, ELECTRODE_CASING.getUnlocalizedName()); - - GameRegistry.registerBlock(COOLANT_DELIVERY_CASING, COOLANT_DELIVERY_CASING.getUnlocalizedName()); - - GameRegistry.registerBlock(SHIELDED_ACCELERATOR_GLASS, SHIELDED_ACCELERATOR_GLASS.getUnlocalizedName()); - - GameRegistry.registerBlock(ANTENNA_CASING_T1, ANTENNA_CASING_T1.getUnlocalizedName()); - - GameRegistry.registerBlock(ANTENNA_CASING_T2, ANTENNA_CASING_T2.getUnlocalizedName()); - - GameRegistry.registerBlock(NIOBIUM_CAVITY_CASING, NIOBIUM_CAVITY_CASING.getUnlocalizedName()); - - GameRegistry.registerBlock(FOCUS_MANIPULATION_CASING, FOCUS_MANIPULATION_CASING.getUnlocalizedName()); - - GameRegistry.registerBlock(FOCUS_HOLDER, FOCUS_HOLDER.getUnlocalizedName()); - - GameRegistry.registerBlock(TARGET_RECEPTACLE_CASING, TARGET_RECEPTACLE_CASING.getUnlocalizedName()); - - GameRegistry.registerBlock(TARGET_HOLDER, TARGET_HOLDER.getUnlocalizedName()); - - for (MaskList mask : MaskList.values()) { - - String english = mask.getEnglishName(); - - String descSpectrum = mask.getSpectrum(); - - PhotolithographicMask maskItem = new PhotolithographicMask(mask.getName(), mask.getDamage(), descSpectrum); - GameRegistry.registerItem(maskItem, maskItem.getUnlocalizedName()); - - GT_LanguageManager.addStringLocalization(maskItem.getUnlocalizedName() + ".name", "Mask (" + english + ")"); - - maskMap.put(mask, maskItem); - - } - - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java b/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java deleted file mode 100644 index 0a7a808d8d..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/register/WerkstoffMaterialPool.java +++ /dev/null @@ -1,2033 +0,0 @@ -package com.elisis.gtnhlanth.common.register; - -import static com.github.bartimaeusnek.bartworks.util.BW_Util.subscriptNumbers; -import static com.github.bartimaeusnek.bartworks.util.BW_Util.superscriptNumbers; - -import java.util.Arrays; - -import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; -import com.github.bartimaeusnek.bartworks.util.Pair; - -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.TextureSet; - -@SuppressWarnings({ "unchecked" }) -public class WerkstoffMaterialPool implements Runnable { - - // Current highest ID = 11_499 - - private static final int offsetID = 11_000; - private static final int offsetID2 = 11_100; - private static final int offsetID3 = 11_300; - private static final int offsetID3b = 11_350; - private static final int offsetID4 = 11_400; - private static final int offsetID5 = 11_460; - - /* - * public static final Werkstoff __ = new Werkstoff( new short[] {_, _, _}, "__", new Werkstoff.Stats(), - * Werkstoff.Types.MIXTURE, new Werkstoff.GenerationFeatures().disable(), offsetID_, TextureSet.SET_DULL ); - */ - - // Misc. - public static final Werkstoff Hafnium = new Werkstoff( - new short[] { 232, 224, 219 }, - "Hafnium", - subscriptNumbers("Hf"), - new Werkstoff.Stats(), - Werkstoff.Types.ELEMENT, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMetalItems() - .enforceUnification(), // Perhaps use - // hafnia - // liquid in - // elemental - // hafnium - // synthesis - offsetID, - TextureSet.SET_METALLIC); - - public static final Werkstoff LowPurityHafnium = new Werkstoff( - new short[] { 240, 223, 208 }, - "Low-Purity Hafnium", - subscriptNumbers("??Hf??"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 1, - TextureSet.SET_DULL); - - public static final Werkstoff Hafnia = new Werkstoff( - new short[] { 247, 223, 203 }, - "Hafnia", - subscriptNumbers("HfO2"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 2, - TextureSet.SET_DULL); - - public static final Werkstoff HafniumTetrachloride = new Werkstoff( - new short[] { 238, 247, 249 }, - "Hafnium Tetrachloride", - subscriptNumbers("HfCl4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 3, - TextureSet.SET_DULL); - - public static final Werkstoff HafniumTetrachlorideSolution = new Werkstoff( - new short[] { 238, 247, 249 }, - "Hafnium Tetrachloride Solution", - subscriptNumbers("HfCl4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 4, - TextureSet.SET_FLUID); - - public static final Werkstoff HafniumIodide = new Werkstoff( - new short[] { 216, 60, 1 }, - "Hafnium Iodide", - subscriptNumbers("HfI4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 5, - TextureSet.SET_DULL); - - public static final Werkstoff HafniumRunoff = new Werkstoff( - new short[] { 74, 65, 42 }, // Literally the statistically ugliest colour - "Hafnium Runoff", - subscriptNumbers("??????"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 6, - TextureSet.SET_DULL); - - public static final Werkstoff Zirconium = new Werkstoff( - new short[] { 225, 230, 225 }, - "Zirconium", - subscriptNumbers("Zr"), - new Werkstoff.Stats().setBlastFurnace(true), - Werkstoff.Types.ELEMENT, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMetalItems(), - // .enforceUnification(), - offsetID + 7, - TextureSet.SET_METALLIC); - - public static final Werkstoff Zirconia = new Werkstoff( - new short[] { 177, 152, 101 }, - "Zirconia", - subscriptNumbers("ZrO2"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 8, - TextureSet.SET_SHINY); - - public static final Werkstoff ZirconiumTetrachloride = new Werkstoff( - new short[] { 179, 164, 151 }, - "Zirconium Tetrachloride", - subscriptNumbers("ZrCl4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 9, - TextureSet.SET_DULL); - - public static final Werkstoff ZirconiumTetrachlorideSolution = new Werkstoff( - new short[] { 179, 164, 151 }, - "Zirconium Tetrachloride Solution", - subscriptNumbers("ZrCl4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), // Blast Furnace needs liquid input because it - // can't do 3 item inputs so have a shitty - // material - offsetID + 10, - TextureSet.SET_FLUID); - - public static final Werkstoff HafniaZirconiaBlend = new Werkstoff( - new short[] { 247, 223, 203 }, - "Hafnia-Zirconia Blend", // Maybe Hafnon?? - subscriptNumbers("??HfZr??"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 11, - TextureSet.SET_DULL); - - public static final Werkstoff Iodine = new Werkstoff( - new short[] { 171, 40, 175 }, - "Iodine", - subscriptNumbers("I"), - new Werkstoff.Stats().setProtons(53) - .setMass(127) - .setSublimation(true) - .setBoilingPoint(484) - .setGas(true), - Werkstoff.Types.ELEMENT, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addCells() - .enforceUnification(), - offsetID + 12, - TextureSet.SET_FLUID); - - // Lanthanide Line - public static final Werkstoff MuddyRareEarthMonaziteSolution = new Werkstoff( - new short[] { 111, 78, 55 }, - "Muddy Monazite Rare Earth Solution", - subscriptNumbers("??LaNdZr??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 14, - TextureSet.SET_FLUID); - - public static final Werkstoff DilutedRareEarthMonaziteMud = new Werkstoff( - new short[] { 160, 120, 90 }, - "Diluted Monazite Rare Earth Mud", - subscriptNumbers("??LaNdHf??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 15, - TextureSet.SET_FLUID); - - public static final Werkstoff DilutedMonaziteSulfate = new Werkstoff( - new short[] { 237, 201, 175 }, - "Diluted Monazite Sulfate", - subscriptNumbers("??LaNd??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 16, - TextureSet.SET_FLUID); - - public static final Werkstoff NitratedRareEarthMonaziteConcentrate = new Werkstoff( - new short[] { 250, 223, 173 }, - "Nitrogenated Monazite Rare Earth Concentrate", - subscriptNumbers("??LaNd??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 17, - TextureSet.SET_FLUID); - - public static final Werkstoff NitricMonaziteLeachedConcentrate = new Werkstoff( - new short[] { 244, 202, 22 }, - "Nitric Monazite Leached Concentrate", - subscriptNumbers("??LaNd??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 18, - TextureSet.SET_FLUID); - - public static final Werkstoff MonaziteSulfate = new Werkstoff( - new short[] { 152, 118, 84 }, - "Monazite Sulfate", - subscriptNumbers("??CeEu??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 19, - TextureSet.SET_DULL); - - public static final Werkstoff AcidicMonazitePowder = new Werkstoff( - new short[] { 50, 23, 77 }, - "Acidic Monazite Powder", - subscriptNumbers("????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 20, - TextureSet.SET_DULL); - - public static final Werkstoff MonaziteRareEarthFiltrate = new Werkstoff( - new short[] { 72, 60, 50 }, - "Monazite Rare Earth Filtrate", - subscriptNumbers("????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 21, - TextureSet.SET_DULL); - - public static final Werkstoff NeutralizedMonaziteRareEarthFiltrate = new Werkstoff( - new short[] { 50, 23, 77 }, - "Neutralized Monazite Rare Earth Filtrate", - subscriptNumbers("????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 22, - TextureSet.SET_DULL); - - public static final Werkstoff MonaziteRareEarthHydroxideConcentrate = new Werkstoff( - new short[] { 193, 154, 107 }, - "Monazite Rare Earth Hydroxide Concentrate", - subscriptNumbers("????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 23, - TextureSet.SET_DULL); - - public static final Werkstoff DriedMonaziteRareEarthConcentrate = new Werkstoff( - new short[] { 250, 214, 165 }, - "Dried Monazite Rare Earth Concentrate", - subscriptNumbers("????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 24, - TextureSet.SET_DULL); - - public static final Werkstoff CeriumDioxide = new Werkstoff( - new short[] { 255, 255, 255 }, - "Cerium Dioxide", - subscriptNumbers("CeO2"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .enforceUnification(), - offsetID + 25, - TextureSet.SET_DULL); - - public static final Werkstoff CeriumChloride = new Werkstoff( - new short[] { 255, 255, 255 }, - "Cerium Chloride", - subscriptNumbers("CeCl3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 26, - TextureSet.SET_DULL); - - public static final Werkstoff CeriumOxalate = new Werkstoff( - new short[] { 255, 255, 224 }, - "Cerium Oxalate", - subscriptNumbers("Ce2(C2O4)3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 27, - TextureSet.SET_DULL); - - public static final Werkstoff CeriumIIIOxide = new Werkstoff( - new short[] { 255, 255, 102 }, - "Cerium (III) Oxide", - subscriptNumbers("Ce2O3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 28, - TextureSet.SET_DULL, - Arrays.asList(Materials.Cerium, Materials.Oxygen), - new Pair<>(Materials.Cerium, 2), - new Pair<>(Materials.Oxygen, 3)); - - public static final Werkstoff CeriumRichMixture = new Werkstoff( - new short[] { 244, 164, 96 }, - "Cerium-Rich Mixture", - subscriptNumbers("??Ce??"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 29, - TextureSet.SET_DULL); - - public static final Werkstoff CooledMonaziteRareEarthConcentrate = new Werkstoff( - new short[] { 250, 214, 165 }, - "Cooled Monazite Rare Earth Concentrate", - subscriptNumbers("????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 30, - TextureSet.SET_DULL); - - public static final Werkstoff MonaziteRarerEarthSediment = new Werkstoff( - new short[] { 250, 214, 165 }, - "MonaziteRarer Earth Sediment", - subscriptNumbers("????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 31, - TextureSet.SET_DULL); - - public static final Werkstoff MonaziteHeterogenousHalogenicRareEarthMixture = new Werkstoff( - new short[] { 250, 214, 165 }, - "Heterogenous Halogenic Monazite Rare Earth Mixture", - subscriptNumbers("????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 32, - TextureSet.SET_DULL); - - public static final Werkstoff SaturatedMonaziteRareEarthMixture = new Werkstoff( - new short[] { 250, 214, 165 }, - "Saturated Monazite Rare Earth", - subscriptNumbers("????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 33, - TextureSet.SET_DULL); - - public static final Werkstoff SamaricResidue = new Werkstoff( - new short[] { 248, 243, 231 }, - "Samaric Residue", - subscriptNumbers("??SmGd??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 34, - TextureSet.SET_DULL); - - public static final Werkstoff AmmoniumNitrate = new Werkstoff( - new short[] { 255, 255, 255 }, - "Ammonium Nitrate Solution", - subscriptNumbers("NH4NO3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 36, - TextureSet.SET_FLUID); - - public static final Werkstoff ThoriumPhosphateCake = new Werkstoff( - new short[] { 188, 143, 143 }, - "Thorium-Phosphate Cake", - subscriptNumbers("??ThP??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 37, - TextureSet.SET_DULL); - - public static final Werkstoff ThoriumPhosphateConcentrate = new Werkstoff( - new short[] { 217, 144, 88 }, - "Thorium-Phosphate Concentrate", - subscriptNumbers("??ThP??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 38, - TextureSet.SET_DULL); - - public static final Werkstoff UraniumFiltrate = new Werkstoff( - new short[] { 190, 240, 94 }, - "Uranium Filtrate", - subscriptNumbers("??U??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 39, - TextureSet.SET_DULL); - - public static final Werkstoff NeutralizedUraniumFiltrate = new Werkstoff( - new short[] { 217, 120, 88 }, - "Neutralized Uranium Filtrate", - subscriptNumbers("??U??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 40, - TextureSet.SET_DULL); - - public static final Werkstoff SeaweedAsh = new Werkstoff( - new short[] { 70, 75, 71 }, - "Seaweed Ash", - new Werkstoff.Stats(), - Werkstoff.Types.BIOLOGICAL, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 41, - TextureSet.SET_DULL); - - public static final Werkstoff SeaweedConcentrate = new Werkstoff( - new short[] { 70, 100, 71 }, - "Seaweed Concentrate", - subscriptNumbers("??I??"), - new Werkstoff.Stats(), - Werkstoff.Types.BIOLOGICAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 42, - TextureSet.SET_FLUID); - - public static final Werkstoff PotassiumPermanganate = new Werkstoff( - new short[] { 165, 50, 138 }, - "Potassium Permanganate", - subscriptNumbers("KMnO4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 43, - TextureSet.SET_DULL); - - public static final Werkstoff PotassiumPermanganateSolution = new Werkstoff( - new short[] { 165, 50, 138 }, - "Potassium Permanganate Solution", - subscriptNumbers("KMnO4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 44, - TextureSet.SET_FLUID); - - public static final Werkstoff SeaweedByproducts = new Werkstoff( - new short[] { 125, 50, 138 }, - "Seaweed Byproducts", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 45, - TextureSet.SET_FLUID); - - public static final Werkstoff NitricLeachedMonaziteMixture = new Werkstoff( - new short[] { 125, 50, 138 }, - "Nitric-Leached Monazite Mixture", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID + 46, - TextureSet.SET_FLUID); - - public static final Werkstoff EuropiumOxide = new Werkstoff( - new short[] { 255, 255, 255 }, - "Europium Oxide", - subscriptNumbers("EuO"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 47, - TextureSet.SET_DULL); - - public static final Werkstoff EuropiumSulfide = new Werkstoff( - new short[] { 5, 0, 5 }, - "Europium Sulfide", - subscriptNumbers("EuS"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 48, - TextureSet.SET_DULL); - - public static final Werkstoff UnknownBlend = new Werkstoff( - new short[] { 0, 0, 5 }, - "UnknownBlend", - subscriptNumbers("?????"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 49, - TextureSet.SET_DULL); - - public static final Werkstoff EuropiumIIIOxide = new Werkstoff( - new short[] { 255, 230, 255 }, - "Europium III Oxide", - subscriptNumbers("Eu2O3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID + 50, - TextureSet.SET_DULL); - - // TODO - - // BASTNASITE - public static final Werkstoff MuddyRareEarthBastnasiteSolution = new Werkstoff( - new short[] { 205, 133, 63 }, - "Muddy Bastnasite Rare Earth Solution", - subscriptNumbers("??LaCeY??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID2, - TextureSet.SET_FLUID); - /* - * public static final Werkstoff FluorosilicicAcid = new Werkstoff( new short[] {205, 133, 63}, - * "Hexafluorosilicic Acid", subscriptNumbers("H2SiF6"), new Werkstoff.Stats(), Werkstoff.Types.COMPOUND, new - * Werkstoff.GenerationFeatures().disable().addCells(), offsetID2 + 1, TextureSet.SET_FLUID ); - */ - public static final Werkstoff SodiumFluorosilicate = new Werkstoff( - new short[] { 205, 133, 63 }, - "Sodiumfluorosilicate", - subscriptNumbers("Na2SiF6"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID2 + 2, - TextureSet.SET_FLUID); - - public static final Werkstoff SteamCrackedBasnasiteSolution = new Werkstoff( - new short[] { 205, 133, 63 }, - "Steam-Cracked Bastnasite Mud", - subscriptNumbers("??LaCeY??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID2 + 3, - TextureSet.SET_FLUID); - - public static final Werkstoff ConditionedBastnasiteMud = new Werkstoff( - new short[] { 205, 133, 63 }, - "Conditioned Bastnasite Mud", - subscriptNumbers("??LaCeY??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID2 + 4, - TextureSet.SET_FLUID); - - public static final Werkstoff DiltedRareEarthBastnasiteMud = new Werkstoff( - new short[] { 205, 133, 63 }, - "Diluted Bastnasite Mud", - subscriptNumbers("??LaCeY??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID2 + 5, - TextureSet.SET_FLUID); - - public static final Werkstoff FilteredBastnasiteMud = new Werkstoff( - new short[] { 205, 133, 63 }, - "Filtered Bastnasite Mud", - subscriptNumbers("??LaCeY??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID2 + 6, - TextureSet.SET_FLUID); - - public static final Werkstoff BastnasiteRareEarthOxidePowder = new Werkstoff( - new short[] { 205, 133, 63 }, - "Bastnasite Rare Earth Oxides", - subscriptNumbers("??LaCeY??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 7, - TextureSet.SET_DULL); - - public static final Werkstoff LeachedBastnasiteRareEarthOxides = new Werkstoff( - new short[] { 205, 133, 63 }, - "Acid-Leached Bastnasite Rare Earth Oxides", - subscriptNumbers("??LaCeY??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 8, - TextureSet.SET_DULL); - - public static final Werkstoff Gangue = new Werkstoff( - new short[] { 0, 0, 0 }, - "Gangue", - subscriptNumbers("Useless..."), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addPrefix(OrePrefixes.block) - .removePrefix(OrePrefixes.ingot) - .removePrefix(OrePrefixes.gem), - offsetID2 + 9, - TextureSet.SET_DULL); - // TODO: Deal with colouring - public static final Werkstoff RoastedRareEarthOxides = new Werkstoff( - new short[] { 160, 82, 45 }, - "Roasted Rare Earth Oxides", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 10, - TextureSet.SET_DULL); - - public static final Werkstoff WetRareEarthOxides = new Werkstoff( - new short[] { 160, 82, 49 }, - "Wet Rare Earth Oxides", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 11, - TextureSet.SET_DULL); - - public static final Werkstoff CeriumOxidisedRareEarthOxides = new Werkstoff( - new short[] { 160, 82, 49 }, - "Cerium-Oxidised Rare Earth Oxides", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 12, - TextureSet.SET_DULL); - - public static final Werkstoff BastnasiteRarerEarthOxides = new Werkstoff( - new short[] { 160, 82, 49 }, - "Bastnasite Rarer Earth Oxides", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 13, - TextureSet.SET_DULL); - - public static final Werkstoff NitratedBastnasiteRarerEarthOxides = new Werkstoff( - new short[] { 160, 90, 60 }, - "Nitrogenated Bastnasite Rarer Earth Oxides", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID2 + 14, - TextureSet.SET_DULL); - - public static final Werkstoff SaturatedBastnasiteRarerEarthOxides = new Werkstoff( - new short[] { 170, 90, 60 }, - "Bastnasite Rarer Earth Oxide Suspension", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID2 + 15, - TextureSet.SET_DULL); - - public static final Werkstoff SamaricRareEarthConcentrate = new Werkstoff( - new short[] { 170, 90, 60 }, - "Samaric Rare Earth Concentrate", - subscriptNumbers("??SmHoTb??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 16, - TextureSet.SET_DULL); - - public static final Werkstoff NeodymicRareEarthConcentrate = new Werkstoff( - new short[] { 170, 90, 60 }, - "Neodymium Rare Earth Concentrate", - subscriptNumbers("??LaNdPr??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 17, - TextureSet.SET_DULL); - public static final Werkstoff LanthaniumChloride = new Werkstoff( - new short[] { 82, 112, 102 }, - "Lanthanium Chloride", - subscriptNumbers("LaCl3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 21, - TextureSet.SET_DULL, - Arrays.asList(Materials.Lanthanum, Materials.Chlorine), - new Pair<>(Materials.Lanthanum, 1), - new Pair<>(Materials.Chlorine, 3)); - - public static final Werkstoff NeodymiumOxide = new Werkstoff( - new short[] { 82, 112, 102 }, - "Neodymium Oxide", - subscriptNumbers("Nd2O3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 22, - TextureSet.SET_DULL, - Arrays.asList(Materials.Neodymium, Materials.Oxygen), - new Pair<>(Materials.Neodymium, 2), - new Pair<>(Materials.Oxygen, 3)); - - public static final Werkstoff FluorinatedSamaricConcentrate = new Werkstoff( - new short[] { 255, 182, 193 }, - "Fluorinated Samaric Concentrate", - subscriptNumbers("??SmHo??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 23, - TextureSet.SET_DULL); - - public static final Werkstoff CalciumFluoride = new Werkstoff( - new short[] { 255, 250, 250 }, - "Calcium Fluoride", - subscriptNumbers("CaF2"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMolten() - .addCells(), - offsetID2 + 24, - TextureSet.SET_DULL, - Arrays.asList(Materials.Calcium, Materials.Fluorine), - new Pair<>(Materials.Calcium, 1), - new Pair<>(Materials.Fluorine, 2)); - - public static final Werkstoff SamariumTerbiumMixture = new Werkstoff( - new short[] { 223, 182, 193 }, - "Samarium-Terbium Mixture", - subscriptNumbers("??SmTb??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 25, - TextureSet.SET_DULL); - - public static final Werkstoff NitratedSamariumTerbiumMixture = new Werkstoff( - new short[] { 223, 182, 193 }, - "Nitrogenated Samarium-Terbium Mixture", - subscriptNumbers("??SmTb??NH4NO3"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 26, - TextureSet.SET_DULL); - - public static final Werkstoff TerbiumNitrate = new Werkstoff( - new short[] { 167, 252, 0 }, - "Terbium Nitrate", - subscriptNumbers("TbNO3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 27, - TextureSet.SET_DULL, - Arrays.asList(Materials.Terbium, Materials.Nitrogen, Materials.Oxygen), - new Pair<>(Materials.Terbium, 1), - new Pair<>(Materials.Nitrogen, 1), - new Pair<>(Materials.Oxygen, 3)); - - public static final Werkstoff SamariumOreConcentrate = new Werkstoff( - new short[] { 255, 200, 230 }, - "Samarium Ore Concentrate", - subscriptNumbers("??Sm??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 28, - TextureSet.SET_DULL); - - public static final Werkstoff DephosphatedSamariumConcentrate = new Werkstoff( - new short[] { 255, 170, 220 }, - "Dephosphated Samarium Concentrate", - subscriptNumbers("??Sm??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID2 + 29, - TextureSet.SET_DULL); - - // Weird/Exciting Chemicals - public static final Werkstoff Tetrahydrofuran = new Werkstoff( - new short[] { 222, 165, 164 }, - "Tetrahydrofuran", - subscriptNumbers("(CH2)4O"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3, - TextureSet.SET_FLUID); - - // 1,4-Butanediol - public static final Werkstoff Butanediol = new Werkstoff( - new short[] { 185, 78, 72 }, - "1,4-Butanediol", - subscriptNumbers("HO(CH2)4OH"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3 + 1, - TextureSet.SET_FLUID); - - // Acidicised 1,4-Butanediol - public static final Werkstoff AcidicButanediol = new Werkstoff( - new short[] { 255, 239, 213 }, - "Acidicised 1,4-Butanediol", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3 + 2, - TextureSet.SET_FLUID); - - // Tellurium-Molybdenum-Oxide Catalyst - public static final Werkstoff MoTeOCatalyst = new Werkstoff( - new short[] { 238, 131, 238 }, - "Tellurium-Molybdenum-Oxide Catalyst", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID3 + 3, - TextureSet.SET_DULL); - - // Tellurium Oxide - public static final Werkstoff TelluriumIVOxide = new Werkstoff( - new short[] { 229, 199, 187 }, - "Tellurium (IV) Oxide", - subscriptNumbers("TeO2"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID3 + 4, - TextureSet.SET_DULL); - - public static final Werkstoff MolybdenumIVOxide = new Werkstoff( - new short[] { 52, 53, 57 }, - "Molybdenum (IV) Oxide", - subscriptNumbers("MoO2"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID3 + 5, - TextureSet.SET_DULL); - - public static final Werkstoff Polytetrahydrofuran = new Werkstoff( - new short[] { 192, 128, 129 }, - "Polytetrahydrofuran", - subscriptNumbers("(C4H8O)OH2"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addCells(), - offsetID3 + 6, - TextureSet.SET_DULL); - - public static final Werkstoff TungstophosphoricAcid = new Werkstoff( - new short[] { 223, 255, 0 }, - "Tungstophosphoric Acid", - subscriptNumbers("H3PW12O40"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3 + 7, - TextureSet.SET_FLUID); - - public static final Werkstoff TolueneDiisocyanate = new Werkstoff( - new short[] { 255, 255, 102 }, - "Toluene Diisocyanate", - subscriptNumbers("CH3C6H3(NCO)2"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3 + 8, - TextureSet.SET_FLUID); - - public static final Werkstoff Dinitrotoluene = new Werkstoff( - new short[] { 216, 191, 216 }, - "Dinitrotoluene", - subscriptNumbers("C7H6N2O4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3 + 9, - TextureSet.SET_FLUID); - - public static final Werkstoff Diaminotoluene = new Werkstoff( - new short[] { 227, 218, 201 }, - "Diaminotoluene", - subscriptNumbers("C6H3(NH2)2CH3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3 + 10, - TextureSet.SET_FLUID); - - public static final Werkstoff TolueneTetramethylDiisocyanate = new Werkstoff( - new short[] { 255, 255, 255 }, - "Toluene Tetramethyl Diisocyanate", - subscriptNumbers("(CONH)2(C6H4)2CH2(C4O)"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3 + 11, - TextureSet.SET_FLUID); - - public static final Werkstoff PTMEGElastomer = new Werkstoff( - new short[] { 248, 248, 255 }, - "PTMEG Elastomer", - new Werkstoff.Stats().setMeltingPoint(600) - .setMeltingVoltage(64), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMolten() - .addMetalItems(), - offsetID3 + 12, - TextureSet.SET_DULL); - - public static final Werkstoff PotassiumChlorate = new Werkstoff( - new short[] { 240, 255, 255 }, - "Potassium Chlorate", - subscriptNumbers("KClO3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMolten(), - offsetID3 + 14, - TextureSet.SET_DULL); - - public static final Werkstoff DilutedAcetone = new Werkstoff( - new short[] { 254, 254, 250 }, - "Diluted Acetone", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3 + 16, - TextureSet.SET_FLUID); - - public static final Werkstoff MolybdenumTrioxide = new Werkstoff( - new short[] { 236, 255, 248 }, - "Molybdenum Trioxide", - subscriptNumbers("MoO3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID3 + 17, - TextureSet.SET_DULL); - - // TODO Samarium Processing Line Material regist - - public static final Werkstoff MuddySamariumRareEarthSolution = new Werkstoff( - new short[] { 226, 180, 108 }, - "Muddy Samarium Rare Earth Solution", - subscriptNumbers("???Sm???"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID5 + 1, - TextureSet.SET_FLUID); - - public static final Werkstoff SamariumRareEarthMud = new Werkstoff( - new short[] { 226, 180, 128 }, - "Samarium Rare Earth Mud", - subscriptNumbers("??Sm??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID5 + 2, - TextureSet.SET_FLUID); - - public static final Werkstoff DilutedSamariumRareEarthSolution = new Werkstoff( - new short[] { 226, 180, 148 }, - "Diluted Samarium Rare Earth Solution", - subscriptNumbers("?Sm?"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID5 + 3, - TextureSet.SET_FLUID); - - public static final Werkstoff SamariumOxalate = new Werkstoff( - new short[] { 248, 248, 180 }, - "Samarium(III) Oxalate", - subscriptNumbers("?Sm2(C2O4)3"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID5 + 4, - TextureSet.SET_DULL); - - public static final Werkstoff SamariumChloride = new Werkstoff( - new short[] { 248, 248, 120 }, - "Samarium(III)-Chloride", - subscriptNumbers("?SmCl3"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMolten(), - offsetID5 + 5, - TextureSet.SET_DULL); - - public static final Werkstoff SamariumChlorideSodiumChlorideBlend = new Werkstoff( - new short[] { 255, 200, 230 }, - "Samarium Chloride-Sodium Chloride Blend", - subscriptNumbers("?SmCl3NaCl"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID5 + 6, - TextureSet.SET_DULL); - - public static final Werkstoff ImpureLanthanumChloride = new Werkstoff( - new short[] { 90, 100, 30 }, - "Impure Lanthanum Chloride", - subscriptNumbers("?LaCl3"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID5 + 7, - TextureSet.SET_DULL); - - public static final Werkstoff SamariumOxide = new Werkstoff( - new short[] { 223, 182, 193 }, - "Samarium Oxide", - subscriptNumbers("Sm2O3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID5 + 8, - TextureSet.SET_DULL, - Arrays.asList(Materials.Samarium, Materials.Oxygen), - new Pair<>(Materials.Samarium, 2), - new Pair<>(Materials.Oxygen, 3)); - - public static final Werkstoff ChlorinatedRareEarthConcentrate = new Werkstoff( - new short[] { 130, 80, 60 }, - "Chlorinated Rare Earth Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID5 + 9, - TextureSet.SET_FLUID); - - public static final Werkstoff ChlorinatedRareEarthEnrichedSolution = new Werkstoff( - new short[] { 130, 90, 60 }, - "Chlorinated Rare Earth Enriched Solution", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID5 + 10, - TextureSet.SET_FLUID); - - public static final Werkstoff ChlorinatedRareEarthDilutedSolution = new Werkstoff( - new short[] { 216, 180, 100 }, - "Chlorinated Rare Earth Diluted Solution", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID5 + 11, - TextureSet.SET_FLUID); - - public static final Werkstoff RarestEarthResidue = new Werkstoff( - new short[] { 224, 211, 211 }, - "Rarest Earth Residue", - subscriptNumbers("???"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID5 + 12, - TextureSet.SET_DULL); - - // TODO reg Lanth Ore Concentrate - /** - * Extracted Nano Resin Lanthanum1.2 Praseodymium3.4 Cerium5.6 Neodymium7.8 Promethium9.10 Samarium11.12 √ - * Europium13.14 Gadolinium15.16 Terbium17.18 Dysprosium19.20 Holmium21.22 Erbium23.24 Thulium25.26 Ytterbium27.28 - * Lutetium29.30 - */ - - public static final Werkstoff LanthanumExtractingNanoResin = new Werkstoff( - new short[] { 50, 80, 40 }, - "Lanthanum Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 1, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledLanthanumExtractingNanoResin = new Werkstoff( - new short[] { 128, 128, 80 }, - "Filled Lanthanum Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 2, - TextureSet.SET_FLUID); - - public static final Werkstoff PraseodymiumExtractingNanoResin = new Werkstoff( - new short[] { 80, 192, 130 }, - "Praseodymium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 3, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledPraseodymiumExtractingNanoResin = new Werkstoff( - new short[] { 140, 192, 130 }, - "Filled Praseodymium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 4, - TextureSet.SET_FLUID); - - public static final Werkstoff CeriumExtractingNanoResin = new Werkstoff( - new short[] { 80, 240, 160 }, - "Cerium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 5, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledCeriumExtractingNanoResin = new Werkstoff( - new short[] { 160, 240, 180 }, - "Filled Cerium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 6, - TextureSet.SET_FLUID); - - public static final Werkstoff NeodymiumExtractingNanoResin = new Werkstoff( - new short[] { 128, 140, 128 }, - "Neodymium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 7, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledNeodymiumExtractingNanoResin = new Werkstoff( - new short[] { 150, 150, 150 }, - "Filled Neodymium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 8, - TextureSet.SET_FLUID); - - public static final Werkstoff PromethiumExtractingNanoResin = new Werkstoff( - new short[] { 110, 255, 60 }, - "Promethium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 9, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledPromethiumExtractingNanoResin = new Werkstoff( - new short[] { 150, 255, 140 }, - "Filled Promethium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 10, - TextureSet.SET_FLUID); - - public static final Werkstoff SamariumExtractingNanoResin = new Werkstoff( - new short[] { 255, 240, 100 }, - "Samarium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 11, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledSamariumExtractingNanoResin = new Werkstoff( - new short[] { 255, 240, 196 }, - "Filled Samarium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 12, - TextureSet.SET_FLUID); - - public static final Werkstoff EuropiumExtractingNanoResin = new Werkstoff( - new short[] { 240, 160, 240 }, - "Europium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 13, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledEuropiumExtractingNanoResin = new Werkstoff( - new short[] { 240, 200, 240 }, - "Filled Europium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 14, - TextureSet.SET_FLUID); - - public static final Werkstoff GadoliniumExtractingNanoResin = new Werkstoff( - new short[] { 120, 255, 80 }, - "Gadolinium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 15, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledGadoliniumExtractingNanoResin = new Werkstoff( - new short[] { 160, 255, 140 }, - "Filled Gadolinium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 16, - TextureSet.SET_FLUID); - - public static final Werkstoff TerbiumExtractingNanoResin = new Werkstoff( - new short[] { 200, 200, 200 }, - "Terbium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 17, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledTerbiumExtractingNanoResin = new Werkstoff( - new short[] { 255, 255, 255 }, - "Filled Terbium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 18, - TextureSet.SET_FLUID); - - public static final Werkstoff DysprosiumExtractingNanoResin = new Werkstoff( - new short[] { 110, 240, 180 }, - "Dysprosium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 19, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledDysprosiumExtractingNanoResin = new Werkstoff( - new short[] { 150, 240, 180 }, - "Filled Dysprosium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 20, - TextureSet.SET_FLUID); - - public static final Werkstoff HolmiumExtractingNanoResin = new Werkstoff( - new short[] { 16, 16, 216 }, - "Holmium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 21, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledHolmiumExtractingNanoResin = new Werkstoff( - new short[] { 60, 90, 255 }, - "Filled Holmium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 22, - TextureSet.SET_FLUID); - - public static final Werkstoff ErbiumExtractingNanoResin = new Werkstoff( - new short[] { 200, 160, 80 }, - "Erbium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 23, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledErbiumExtractingNanoResin = new Werkstoff( - new short[] { 233, 170, 100 }, - "Filled Erbium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 24, - TextureSet.SET_FLUID); - - public static final Werkstoff ThuliumExtractingNanoResin = new Werkstoff( - new short[] { 128, 178, 255 }, - "Thulium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 25, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledThuliumExtractingNanoResin = new Werkstoff( - new short[] { 160, 200, 255 }, - "Filled Thulium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 26, - TextureSet.SET_FLUID); - - public static final Werkstoff YtterbiumExtractingNanoResin = new Werkstoff( - new short[] { 0, 255, 0 }, - "Ytterbium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 27, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledYtterbiumExtractingNanoResin = new Werkstoff( - new short[] { 100, 255, 100 }, - "Filled Ytterbium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 28, - TextureSet.SET_FLUID); - - public static final Werkstoff LutetiumExtractingNanoResin = new Werkstoff( - new short[] { 230, 16, 230 }, - "Lutetium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 29, - TextureSet.SET_FLUID); - - public static final Werkstoff FilledLutetiumExtractingNanoResin = new Werkstoff( - new short[] { 240, 100, 240 }, - "Filled Lutetium Extracting Nano Resin", - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 30, - TextureSet.SET_FLUID); - - // Lanthanides Chloride Concentrate - // Lanthanum - public static final Werkstoff LanthanumChlorideConcentrate = new Werkstoff( - new short[] { 128, 128, 80 }, - "Lanthanum Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 31, - TextureSet.SET_FLUID); - - // Praseodymium - public static final Werkstoff PraseodymiumChlorideConcentrate = new Werkstoff( - new short[] { 140, 192, 130 }, - "Praseodymium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 32, - TextureSet.SET_FLUID); - - // Cerium - public static final Werkstoff CeriumChlorideConcentrate = new Werkstoff( - new short[] { 160, 240, 180 }, - "Cerium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 33, - TextureSet.SET_FLUID); - - // Neodymium - public static final Werkstoff NeodymiumChlorideConcentrate = new Werkstoff( - new short[] { 150, 150, 150 }, - "Neodymium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 34, - TextureSet.SET_FLUID); - - // - public static final Werkstoff PromethiumChlorideConcentrate = new Werkstoff( - new short[] { 150, 255, 140 }, - "Promethium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 35, - TextureSet.SET_FLUID); - - // - public static final Werkstoff SamariumChlorideConcentrate = new Werkstoff( - new short[] { 255, 240, 196 }, - "Samarium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 36, - TextureSet.SET_FLUID); - - // - public static final Werkstoff EuropiumChlorideConcentrate = new Werkstoff( - new short[] { 240, 200, 240 }, - "Europium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 37, - TextureSet.SET_FLUID); - - // - public static final Werkstoff GadoliniumChlorideConcentrate = new Werkstoff( - new short[] { 160, 255, 140 }, - "Gadolinium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 38, - TextureSet.SET_FLUID); - - // - public static final Werkstoff TerbiumChlorideConcentrate = new Werkstoff( - new short[] { 255, 255, 255 }, - "Terbium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 39, - TextureSet.SET_FLUID); - - // - public static final Werkstoff DysprosiumChlorideConcentrate = new Werkstoff( - new short[] { 150, 240, 180 }, - "Dysprosium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 40, - TextureSet.SET_FLUID); - - // - public static final Werkstoff HolmiumChlorideConcentrate = new Werkstoff( - new short[] { 60, 90, 255 }, - "Holmium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 41, - TextureSet.SET_FLUID); - - // - public static final Werkstoff ErbiumChlorideConcentrate = new Werkstoff( - new short[] { 233, 170, 100 }, - "Erbium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 42, - TextureSet.SET_FLUID); - - // - public static final Werkstoff ThuliumChlorideConcentrate = new Werkstoff( - new short[] { 160, 200, 255 }, - "Thulium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 43, - TextureSet.SET_FLUID); - - // - public static final Werkstoff YtterbiumChlorideConcentrate = new Werkstoff( - new short[] { 100, 255, 100 }, - "Ytterbium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 44, - TextureSet.SET_FLUID); - - // - public static final Werkstoff LutetiumChlorideConcentrate = new Werkstoff( - new short[] { 240, 100, 240 }, - "Lutetium Chloride Concentrate", - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID4 + 45, - TextureSet.SET_FLUID); - - // Lanthanides Ore Concentrate - - // Lanthanum - public static final Werkstoff LanthanumOreConcentrate = new Werkstoff( - new short[] { 128, 128, 96 }, - "Lanthanum Ore Concentrate", - subscriptNumbers("??La??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 46, - TextureSet.SET_DULL); - - // Praseodymium - public static final Werkstoff PraseodymiumOreConcentrate = new Werkstoff( - new short[] { 140, 192, 130 }, - "Praseodymium Ore Concentrate", - subscriptNumbers("??Pr??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 47, - TextureSet.SET_DULL); - - // Cerium - public static final Werkstoff CeriumOreConcentrate = CeriumRichMixture; - - // Neodymium - public static final Werkstoff NeodymiumOreConcentrate = new Werkstoff( - new short[] { 128, 128, 128 }, - "Neodymium Ore Concentrate", - subscriptNumbers("??Nd??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 49, - TextureSet.SET_DULL); - - // Promethium - public static final Werkstoff PromethiumOreConcentrate = new Werkstoff( - new short[] { 150, 255, 140 }, - "Promethium Ore Concentrate", - subscriptNumbers("??Po??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 50, - TextureSet.SET_DULL); - - // Europium - public static final Werkstoff EuropiumOreConcentrate = new Werkstoff( - new short[] { 240, 200, 240 }, - "Europium Ore Concentrate", - subscriptNumbers("??Eu??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 51, - TextureSet.SET_DULL); - - // Gadolinium - public static final Werkstoff GadoliniumOreConcentrate = new Werkstoff( - new short[] { 160, 255, 140 }, - "Gadolinium Ore Concentrate", - subscriptNumbers("??Gd??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 52, - TextureSet.SET_DULL); - - // Terbium - public static final Werkstoff TerbiumOreConcentrate = new Werkstoff( - new short[] { 255, 255, 255 }, - "Terbium Ore Concentrate", - subscriptNumbers("??Tb??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 53, - TextureSet.SET_DULL); - - // Dysprosium - public static final Werkstoff DysprosiumOreConcentrate = new Werkstoff( - new short[] { 150, 240, 180 }, - "Dysprosium Ore Concentrate", - subscriptNumbers("??Dy??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 54, - TextureSet.SET_DULL); - - // Holmium - public static final Werkstoff HolmiumOreConcentrate = new Werkstoff( - new short[] { 60, 90, 255 }, - "Holmium Ore Concentrate", - subscriptNumbers("??Ho??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 55, - TextureSet.SET_DULL); - - // Erbium - public static final Werkstoff ErbiumOreConcentrate = new Werkstoff( - new short[] { 233, 170, 100 }, - "Erbium Ore Concentrate", - subscriptNumbers("??Er??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 56, - TextureSet.SET_DULL); - - // Thulium - public static final Werkstoff ThuliumOreConcentrate = new Werkstoff( - new short[] { 160, 200, 255 }, - "Thulium Ore Concentrate", - subscriptNumbers("??Tm??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 57, - TextureSet.SET_DULL); - - // Ytterbium - public static final Werkstoff YtterbiumOreConcentrate = new Werkstoff( - new short[] { 100, 255, 100 }, - "Ytterbium Ore Concentrate", - subscriptNumbers("??Yb??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 58, - TextureSet.SET_DULL); - - // Lutetium - public static final Werkstoff LutetiumOreConcentrate = new Werkstoff( - new short[] { 240, 100, 240 }, - "Lutetium Ore Concentrate", - subscriptNumbers("??Lu??"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID4 + 59, - TextureSet.SET_DULL); - - // LuAG - public static final Werkstoff CeriumDopedLutetiumAluminiumOxygenBlend = new Werkstoff( - new short[] { 128, 192, 80 }, - "Cerium-doped Lutetium Aluminium Oxygen Blend", - subscriptNumbers("(Ce)Lu3Al5O12"), - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMolten(), - offsetID5 + 38, - TextureSet.SET_DULL); - - public static final Werkstoff CeriumDopedLutetiumAluminiumGarnet = new Werkstoff( - new short[] { 144, 255, 63 }, - "Cerium-doped Lutetium Aluminium Garnet (Ce:LuAG)", - subscriptNumbers("(Ce)Lu3Al5O12"), - new Werkstoff.Stats(), - Werkstoff.Types.MATERIAL, - new Werkstoff.GenerationFeatures().disable() - .addGems(), - offsetID5 + 39, - TextureSet.SET_GEM_VERTICAL); - - public static final Werkstoff Permalloy = new Werkstoff( - new short[] { 195, 230, 225 }, - "Permalloy", - subscriptNumbers("Ni4FeMo"), - new Werkstoff.Stats().setCentrifuge(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMetalItems() - .addMixerRecipes((short) 3) - .enforceUnification(), - offsetID3b, - TextureSet.SET_DULL, - new Pair<>(Materials.Nickel, 4), - new Pair<>(Materials.Iron, 1), - new Pair<>(Materials.Molybdenum, 1)); - - public static final Werkstoff MuMetal = new Werkstoff( - new short[] { 210, 230, 225 }, - "Mu-metal", - subscriptNumbers("?NiFeCuCrMo?"), - new Werkstoff.Stats().setBlastFurnace(true) - .setCentrifuge(true) - .setMass(180) - .setSpeedOverride(3), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMetalItems() - .addMultipleIngotMetalWorkingItems() - .addCraftingMetalWorkingItems() - .enforceUnification(), - offsetID3b + 1, - TextureSet.SET_METALLIC, - new Pair<>(WerkstoffMaterialPool.Permalloy, 9), - new Pair<>(Materials.Copper, 1), - new Pair<>(Materials.Chrome, 1)); - - public static final Werkstoff Thorium234 = new Werkstoff( - new short[] { 0, 40, 0 }, - "Thorium 234", - superscriptNumbers("Th234"), - new Werkstoff.Stats().setBlastFurnace(true) - .setRadioactive(true), - Werkstoff.Types.ISOTOPE, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID3b + 2, - TextureSet.SET_DULL); - - public static final Werkstoff SiliconNitride = new Werkstoff( - new short[] { 132, 140, 120 }, - "Silicon Nitride", - subscriptNumbers("Si3N4"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addMetalItems() - .enforceUnification(), - offsetID3b + 3, - TextureSet.SET_DULL); - - public static final Werkstoff Fluoroform = new Werkstoff( - new short[] { 0, 0, 0 }, - "Fluoroform", - subscriptNumbers("CHF3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3b + 4, - TextureSet.SET_FLUID, - new Pair<>(Materials.Carbon, 1), - new Pair<>(Materials.Hydrogen, 1), - new Pair<>(Materials.Fluorine, 3)); - - public static final Werkstoff FluoroformOxygenMix = new Werkstoff( - new short[] { 0, 0, 0 }, - "Reactive-Ion Etching Mixture", - subscriptNumbers("CHF3/O2"), - new Werkstoff.Stats().setCentrifuge(true), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3b + 5, - TextureSet.SET_FLUID); - - public static final Werkstoff BoronTrioxide = new Werkstoff( - new short[] { 238, 222, 209 }, - "Boron Trioxide", - subscriptNumbers("B2O3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID3b + 6, - TextureSet.SET_DULL, - new Pair<>(Materials.Boron, 2), - new Pair<>(Materials.Oxygen, 3)); - - public static final Werkstoff BoronTrichloride = new Werkstoff( - new short[] { 154, 96, 208 }, - "Boron Trichloride", - subscriptNumbers("BCl3"), - new Werkstoff.Stats().setElektrolysis(true), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3b + 7, - TextureSet.SET_FLUID, - new Pair<>(Materials.Boron, 1), - new Pair<>(Materials.Chlorine, 3)); - - public static final Werkstoff LanthanumHexaboride = new Werkstoff( - new short[] { 140, 110, 120 }, - "Lanthanum Hexaboride", - subscriptNumbers("LaB6"), - new Werkstoff.Stats().setMass(200), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust() - .addGems() - .addSimpleMetalWorkingItems(), - offsetID3b + 8, - TextureSet.SET_GEM_HORIZONTAL, - new Pair<>(Materials.Lanthanum, 1), - new Pair<>(Materials.Boron, 6)); - - public static final Werkstoff LanthanumOxide = new Werkstoff( - new short[] { 105, 209, 180 }, - "Lanthanum Oxide", - subscriptNumbers("La2O3"), - new Werkstoff.Stats(), - Werkstoff.Types.COMPOUND, - new Werkstoff.GenerationFeatures().disable() - .onlyDust(), - offsetID3b + 9, - TextureSet.SET_DULL); - - public static final Werkstoff NitrogenPlasmaSilaneMix = new Werkstoff( - new short[] { 140, 125, 220 }, - "Silane-Nitrogen Plasma Mixture", - subscriptNumbers("SiH4/N"), - new Werkstoff.Stats(), - Werkstoff.Types.MIXTURE, - new Werkstoff.GenerationFeatures().disable() - .addCells(), - offsetID3b + 10, - TextureSet.SET_FLUID); - - public static void runInit() { - addSubTags(); - } - - private static void addSubTags() { - - // WerkstoffMaterialPool.PTMEGElastomer.add(SubTag.BOUNCY, SubTag.STRETCHY); - - } - - @Override - public void run() {} -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java deleted file mode 100644 index 239be6a3ea..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java +++ /dev/null @@ -1,241 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity; - -import static com.elisis.gtnhlanth.util.DescTextLocalization.BLUEPRINT_INFO; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; -import static gregtech.api.enums.GT_HatchElement.Energy; -import static gregtech.api.enums.GT_HatchElement.InputBus; -import static gregtech.api.enums.GT_HatchElement.InputHatch; -import static gregtech.api.enums.GT_HatchElement.Maintenance; -import static gregtech.api.enums.GT_HatchElement.Muffler; -import static gregtech.api.enums.GT_HatchElement.OutputBus; -import static gregtech.api.enums.GT_HatchElement.OutputHatch; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; -import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; -import static gregtech.api.util.GT_StructureUtility.ofCoil; - -import javax.annotation.Nonnull; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - -import com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps; -import com.elisis.gtnhlanth.util.DescTextLocalization; -import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; - -import gregtech.api.GregTech_API; -import gregtech.api.enums.HeatingCoilLevel; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.logic.ProcessingLogic; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; -import gregtech.api.recipe.RecipeMap; -import gregtech.api.recipe.check.CheckRecipeResult; -import gregtech.api.recipe.check.CheckRecipeResultRegistry; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_OverclockCalculator; -import gregtech.api.util.GT_Recipe; - -public class Digester extends GT_MetaTileEntity_EnhancedMultiBlockBase<Digester> implements ISurvivalConstructable { - - protected int casingAmount = 0; - protected int height = 0; - - private HeatingCoilLevel heatLevel; - - private final IStructureDefinition<Digester> multiDefinition = StructureDefinition.<Digester>builder() - .addShape( - mName, - transpose( - new String[][] { { " ", " ttttt ", " t---t ", " t---t ", " t---t ", " ttttt ", " " }, - { " ttt ", " t---t ", "t-----t", "t-----t", "t-----t", " t---t ", " ttt " }, - { " tccct ", "tc---ct", "c-----c", "c-----c", "c-----c", "tc---ct", " tccct " }, - { " tt~tt ", "thhhhht", "thsssht", "thsssht", "thsssht", "thhhhht", " ttttt " }, })) - - .addElement( - 't', - buildHatchAdder(Digester.class) - .atLeast(InputHatch, OutputHatch, InputBus, OutputBus, Maintenance, Energy, Muffler) - .casingIndex(47) - .dot(1) - .buildAndChain(GregTech_API.sBlockCasings4, 0)) - .addElement('h', ofBlock(GregTech_API.sBlockCasings1, 11)) - .addElement('s', ofBlock(GregTech_API.sBlockCasings4, 1)) - .addElement('c', ofCoil(Digester::setCoilLevel, Digester::getCoilLevel)) - .build(); - - public Digester(String name) { - super(name); - } - - public Digester(int id, String name, String nameRegional) { - super(id, name, nameRegional); - } - - @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - return checkPiece(mName, 3, 3, 0) && !mMufflerHatches.isEmpty() && mMaintenanceHatches.size() == 1; - } - - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - } - - public HeatingCoilLevel getCoilLevel() { - return this.heatLevel; - } - - public void setCoilLevel(HeatingCoilLevel level) { - this.heatLevel = level; - } - - @Override - public RecipeMap<?> getRecipeMap() { - return LanthanidesRecipeMaps.digesterRecipes; - } - - @Override - protected ProcessingLogic createProcessingLogic() { - return new ProcessingLogic() { - - @Nonnull - @Override - protected GT_OverclockCalculator createOverclockCalculator(@Nonnull GT_Recipe recipe) { - return super.createOverclockCalculator(recipe).enablePerfectOC(); - } - - @Override - protected @Nonnull CheckRecipeResult validateRecipe(@Nonnull GT_Recipe recipe) { - return recipe.mSpecialValue <= Digester.this.getCoilLevel() - .getHeat() ? CheckRecipeResultRegistry.SUCCESSFUL - : CheckRecipeResultRegistry.insufficientHeat(recipe.mSpecialValue); - } - - }; - } - - @Override - public boolean supportsVoidProtection() { - return true; - } - - @Override - public boolean supportsInputSeparation() { - return true; - } - - @Override - public boolean supportsBatchMode() { - return true; - } - - @Override - public boolean supportsSingleRecipeLocking() { - return true; - } - - @Override - public int getMaxEfficiency(ItemStack itemStack) { - return 10000; - } - - @Override - public int getPollutionPerTick(ItemStack aStack) { - return 20; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity arg0) { - return new Digester(this.mName); - } - - @Override - public void construct(ItemStack itemStack, boolean b) { - buildPiece(mName, itemStack, b, 3, 3, 0); - } - - @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { - if (mMachine) return -1; - return survivialBuildPiece(mName, stackSize, 3, 3, 0, elementBudget, env, false, true); - } - - @Override - public String[] getStructureDescription(ItemStack arg0) { - return DescTextLocalization.addText("Digester.hint", 6); - } - - public ITexture[] getTexture(IGregTechTileEntity te, ForgeDirection side, ForgeDirection facing, int colorIndex, - boolean active, boolean redstone) { - - // Oil Cracker textures cuz I'm lazy - - if (side == facing) { - if (active) return new ITexture[] { casingTexturePages[0][47], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW) - .extFacing() - .glow() - .build() }; - return new ITexture[] { casingTexturePages[0][47], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_GLOW) - .extFacing() - .glow() - .build() }; - } - return new ITexture[] { casingTexturePages[0][47] }; - } - - @Override - protected GT_Multiblock_Tooltip_Builder createTooltip() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Digester") - .addInfo("Controller block for the Digester") - .addInfo("Input ores and fluid, output water.") - .addInfo(BLUEPRINT_INFO) - .addSeparator() - .addController("Front bottom") - .addInputHatch("Hint block with dot 1") - .addInputBus("Hint block with dot 1") - .addOutputHatch("Hint block with dot 1") - .addOutputBus("Hint block with dot 1") - .addMaintenanceHatch("Hint block with dot 1") - .addMufflerHatch("Hint block with dot 1") - .toolTipFinisher("GTNH: Lanthanides"); - return tt; - } - - @Override - public IStructureDefinition<Digester> getStructureDefinition() { - return multiDefinition; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public int getDamageToComponent(ItemStack arg0) { - // TODO Auto-generated method stub - return 0; - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java deleted file mode 100644 index e6a714fd00..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java +++ /dev/null @@ -1,264 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity; - -import static com.elisis.gtnhlanth.util.DescTextLocalization.BLUEPRINT_INFO; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockAdder; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; -import static gregtech.api.enums.GT_HatchElement.Energy; -import static gregtech.api.enums.GT_HatchElement.InputBus; -import static gregtech.api.enums.GT_HatchElement.InputHatch; -import static gregtech.api.enums.GT_HatchElement.Maintenance; -import static gregtech.api.enums.GT_HatchElement.OutputBus; -import static gregtech.api.enums.GT_HatchElement.OutputHatch; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; -import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; - -import java.util.Arrays; -import java.util.List; - -import javax.annotation.Nonnull; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; - -import org.jetbrains.annotations.NotNull; - -import com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps; -import com.elisis.gtnhlanth.util.DescTextLocalization; -import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; -import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; - -import gregtech.api.GregTech_API; -import gregtech.api.interfaces.ISecondaryDescribable; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.logic.ProcessingLogic; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; -import gregtech.api.recipe.RecipeMap; -import gregtech.api.recipe.check.CheckRecipeResult; -import gregtech.api.recipe.check.CheckRecipeResultRegistry; -import gregtech.api.recipe.check.SimpleCheckRecipeResult; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; - -public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase<DissolutionTank> - implements ISurvivalConstructable, ISecondaryDescribable { - - private final IStructureDefinition<DissolutionTank> multiDefinition = StructureDefinition.<DissolutionTank>builder() - .addShape( - mName, - transpose( - new String[][] { { " sss ", "sssss", "sssss", "sssss", " sss " }, - { "sgggs", "g---g", "g---g", "g---g", "sgggs" }, { "sgggs", "g---g", "g---g", "g---g", "sgggs" }, - { "ss~ss", "shhhs", "shhhs", "shhhs", "sssss" }, { "s s", " ", " ", " ", "s s" } })) - .addElement( - 's', - buildHatchAdder(DissolutionTank.class) - .atLeast(InputHatch, OutputHatch, InputBus, OutputBus, Maintenance, Energy) - .casingIndex(49) - .dot(1) - .buildAndChain(GregTech_API.sBlockCasings4, 1)) - .addElement('h', ofBlock(GregTech_API.sBlockCasings1, 11)) - .addElement('g', ofBlockAdder(DissolutionTank::addGlass, ItemRegistry.bw_glasses[0], 1)) - .build(); - - public DissolutionTank(String name) { - super(name); - } - - public DissolutionTank(int id, String name, String nameRegional) { - super(id, name, nameRegional); - } - - @Override - public IStructureDefinition<DissolutionTank> getStructureDefinition() { - return multiDefinition; - } - - @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - return checkPiece(mName, 2, 3, 0) && mMaintenanceHatches.size() == 1; - } - - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - } - - private boolean addGlass(Block block, int meta) { - return block == ItemRegistry.bw_glasses[0]; - } - - @Override - public RecipeMap<?> getRecipeMap() { - return LanthanidesRecipeMaps.dissolutionTankRecipes; - } - - @Override - protected ProcessingLogic createProcessingLogic() { - return new ProcessingLogic() { - - @NotNull - @Override - protected CheckRecipeResult onRecipeStart(@Nonnull GT_Recipe recipe) { - if (!checkRatio(recipe, Arrays.asList(inputFluids))) { - criticalStopMachine(); - return SimpleCheckRecipeResult.ofFailurePersistOnShutdown("dissolution_ratio"); - } - return CheckRecipeResultRegistry.SUCCESSFUL; - } - - }; - } - - @Override - public boolean supportsVoidProtection() { - return true; - } - - @Override - public boolean supportsInputSeparation() { - return true; - } - - @Override - public boolean supportsBatchMode() { - return true; - } - - @Override - public boolean supportsSingleRecipeLocking() { - return true; - } - - private boolean checkRatio(GT_Recipe tRecipe, List<FluidStack> tFluidInputs) { - FluidStack majorGenericFluid = tRecipe.mFluidInputs[0]; - FluidStack minorGenericFluid = tRecipe.mFluidInputs[1]; - - int majorAmount; - int minorAmount; - - FluidStack fluidInputOne = tFluidInputs.get(0); - FluidStack fluidInputTwo = tFluidInputs.get(1); - - if (fluidInputOne.getUnlocalizedName() - .equals(majorGenericFluid.getUnlocalizedName())) { - if (fluidInputTwo.getUnlocalizedName() - .equals(minorGenericFluid.getUnlocalizedName())) { - // majorInput = fluidInputOne; - majorAmount = fluidInputOne.amount; - // minorInput = fluidInputTwo; - minorAmount = fluidInputTwo.amount; - // GT_Log.out.print("in first IF"); - } else return false; // No valid other input - - } else if (fluidInputTwo.getUnlocalizedName() - .equals(majorGenericFluid.getUnlocalizedName())) { - if (fluidInputOne.getUnlocalizedName() - .equals(minorGenericFluid.getUnlocalizedName())) { - // majorInput = fluidInputTwo; - majorAmount = fluidInputTwo.amount; - // minorInput = fluidInputOne; - minorAmount = fluidInputOne.amount; - // GT_Log.out.print("in second if"); - } else return false; - - } else return false; - - return majorAmount / tRecipe.mSpecialValue == minorAmount; - } - - @Override - public int getMaxEfficiency(ItemStack itemStack) { - return 10000; - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity arg0) { - return new DissolutionTank(this.mName); - } - - @Override - public void construct(ItemStack itemStack, boolean b) { - buildPiece(mName, itemStack, b, 2, 3, 0); - } - - @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { - if (mMachine) return -1; - return survivialBuildPiece(mName, stackSize, 2, 3, 0, elementBudget, env, false, true); - } - - @Override - public String[] getStructureDescription(ItemStack arg0) { - return DescTextLocalization.addText("DissolutionTank.hint", 4); - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity te, ForgeDirection side, ForgeDirection facing, int colorIndex, - boolean active, boolean redstone) { - - if (side == facing) { - if (active) return new ITexture[] { casingTexturePages[0][49], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW) - .extFacing() - .glow() - .build() }; - return new ITexture[] { casingTexturePages[0][49], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_GLOW) - .extFacing() - .glow() - .build() }; - } - return new ITexture[] { casingTexturePages[0][49] }; - } - - @Override - protected GT_Multiblock_Tooltip_Builder createTooltip() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Dissolution Tank") - .addInfo("Controller block for the Dissolution Tank") - .addInfo("Input Water and Fluid, output Fluid") - .addInfo("You must input the Fluids at the correct Ratio") - .addInfo(BLUEPRINT_INFO) - .addSeparator() - .addController("Front bottom") - .addInputHatch("Hint block with dot 1") - .addInputBus("Hint block with dot 1") - .addOutputHatch("Hint block with dot 1") - .addOutputBus("Hint block with dot 1") - .addMaintenanceHatch("Hint block with dot 1") - .toolTipFinisher("GTNH: Lanthanides"); - - return tt; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack arg0) { - return false; - } - - @Override - public int getDamageToComponent(ItemStack arg0) { - return 0; - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/LINAC.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/LINAC.java deleted file mode 100644 index 98b20becb7..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/LINAC.java +++ /dev/null @@ -1,749 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity; - -import static com.elisis.gtnhlanth.util.DescTextLocalization.addDotText; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static gregtech.api.enums.GT_HatchElement.Energy; -import static gregtech.api.enums.GT_HatchElement.InputHatch; -import static gregtech.api.enums.GT_HatchElement.Maintenance; -import static gregtech.api.enums.GT_HatchElement.OutputHatch; -import static gregtech.api.enums.GT_Values.VN; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; -import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; - -import java.util.ArrayList; -import java.util.Objects; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; - -import com.elisis.gtnhlanth.common.beamline.BeamInformation; -import com.elisis.gtnhlanth.common.beamline.BeamLinePacket; -import com.elisis.gtnhlanth.common.beamline.Particle; -import com.elisis.gtnhlanth.common.hatch.TileHatchInputBeamline; -import com.elisis.gtnhlanth.common.hatch.TileHatchOutputBeamline; -import com.elisis.gtnhlanth.common.register.LanthItemList; -import com.elisis.gtnhlanth.common.tileentity.recipe.beamline.BeamlineRecipeLoader; -import com.elisis.gtnhlanth.util.DescTextLocalization; -import com.elisis.gtnhlanth.util.Util; -import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass; -import com.gtnewhorizon.structurelib.StructureLib; -import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; - -import gregtech.api.GregTech_API; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.TickTime; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.shutdown.ShutDownReason; -import gregtech.api.util.shutdown.SimpleShutDownReason; - -public class LINAC extends GT_MetaTileEntity_EnhancedMultiBlockBase<LINAC> implements ISurvivalConstructable { - - private static final IStructureDefinition<LINAC> STRUCTURE_DEFINITION; - - protected static final String STRUCTURE_PIECE_BASE = "base"; - protected static final String STRUCTURE_PIECE_LAYER = "layer"; - protected static final String STRUCTURE_PIECE_END = "end"; - - private byte glassTier; - - private boolean onEndInnerLayer = false; - - private int machineTemp = 0; // Coolant temperature - - private ArrayList<TileHatchInputBeamline> mInputBeamline = new ArrayList<>(); - private ArrayList<TileHatchOutputBeamline> mOutputBeamline = new ArrayList<>(); - - private static final int CASING_INDEX = GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings5, 14); - - private static final byte MIN_GLASS_TIER = 6; - - /* - * g: Grate Machine Casing b: Borosilicate glass c: Shielded accelerator casing v: Vacuum k: Shielded glass d: - * Coolant Delivery casing y: Superconducting coil - */ - - static { - STRUCTURE_DEFINITION = StructureDefinition.<LINAC>builder() - .addShape( - STRUCTURE_PIECE_BASE, - new String[][] { { "ggggggg", "gbbbbbg", "gbbbbbg", "gbbibbg", "gbbbbbg", "gbbbbbg", "ggg~ggg" }, - { "ggggggg", "gcccccg", "gcccccg", "gcc-ccg", "gcccccg", "gcccccg", "ggggggg" }, - { "ccccccc", "cvvvvvc", "kvvvvvk", "kvv-vvk", "kvvvvvk", "cvvvvvc", "jcccccj" }, - { "cckkkcc", "cdddddc", "kdyyydk", "kdy-ydk", "kdyyydk", "cdddddc", "jcccccj" }, - { "cckkkcc", "cdvvvdc", "kvvvvvk", "kdv-vdk", "kvvvvvk", "cdvvvdc", "jcccccj" }, - { "cckkkcc", "cdddddc", "kdyyydk", "kdy-ydk", "kdyyydk", "cdddddc", "jcccccj" }, - { "cckkkcc", "cdvvvdc", "kvvvvvk", "kdv-vdk", "kvvvvvk", "cdvvvdc", "jcccccj" }, - { "cckhkcc", "cdddddc", "kdyyydk", "kdy-ydk", "kdyyydk", "cdddddc", "jcccccj" }, }) - .addShape( - STRUCTURE_PIECE_LAYER, - new String[][] { { "cckkkcc", "cdvvvdc", "kvvvvvk", "kdv-vdk", "kvvvvvk", "cdvvvdc", "ccccccc" }, - { "cckkkcc", "cdddddc", "kdyyydk", "kdy-ydk", "kdyyydk", "cdddddc", "ccccccc" } }) - .addShape( - STRUCTURE_PIECE_END, - new String[][] { { "cckkkcc", "cdvvvdc", "kvvvvvk", "kdv-vdk", "kvvvvvk", "cdvvvdc", "ccccccc" }, - { "cckhkcc", "cdddddc", "kdyyydk", "kdy-ydk", "kdyyydk", "cdddddc", "ccccccc" }, - { "cckkkcc", "cdvvvdc", "kvvvvvk", "kdv-vdk", "kvvvvvk", "cdvvvdc", "ccccccc" }, - { "cckkkcc", "cdddddc", "kdyyydk", "kdy-ydk", "kdyyydk", "cdddddc", "ccccccc" }, - { "cckkkcc", "cdvvvdc", "kvvvvvk", "kdv-vdk", "kvvvvvk", "cdvvvdc", "ccccccc" }, - { "cckkkcc", "cdddddc", "kdyyydk", "kdy-ydk", "kdyyydk", "cdddddc", "ccccccc" }, - { "ccccccc", "cvvvvvc", "kvvvvvk", "kvv-vvk", "kvvvvvk", "cvvvvvc", "ccccccc" }, - { "ccccccc", "ccccccc", "ccccccc", "ccc-ccc", "ccccccc", "ccccccc", "ccccccc" }, - { "ccccccc", "cbbbbbc", "cbbbbbc", "cbbobbc", "cbbbbbc", "cbbbbbc", "ccccccc" } }) - .addElement('c', ofBlock(LanthItemList.SHIELDED_ACCELERATOR_CASING, 0)) - .addElement('g', ofBlock(GregTech_API.sBlockCasings3, 10)) // Grate Machine Casing - .addElement( - 'b', - BorosilicateGlass.ofBoroGlass( - (byte) 0, - MIN_GLASS_TIER, - Byte.MAX_VALUE, - (te, t) -> te.glassTier = t, - te -> te.glassTier)) - .addElement( - 'i', - buildHatchAdder(LINAC.class).hatchClass(TileHatchInputBeamline.class) - .casingIndex(CASING_INDEX) - .dot(3) - .adder(LINAC::addBeamLineInputHatch) - .build()) - .addElement( - 'o', - buildHatchAdder(LINAC.class).hatchClass(TileHatchOutputBeamline.class) - .casingIndex(CASING_INDEX) - .dot(4) - .adder(LINAC::addBeamLineOutputHatch) - .build()) - .addElement('v', ofBlock(LanthItemList.ELECTRODE_CASING, 0)) - .addElement('k', ofBlock(LanthItemList.SHIELDED_ACCELERATOR_GLASS, 0)) - .addElement('d', ofBlock(LanthItemList.COOLANT_DELIVERY_CASING, 0)) - .addElement('y', ofBlock(GregTech_API.sBlockCasings1, 15)) // Superconducting coil - .addElement( - 'h', - buildHatchAdder(LINAC.class).atLeast(InputHatch, OutputHatch) - .casingIndex(CASING_INDEX) - .dot(2) - .build()) - - .addElement( - 'j', - buildHatchAdder(LINAC.class).atLeast(Maintenance, Energy) - .casingIndex(CASING_INDEX) - .dot(1) - .buildAndChain(ofBlock(LanthItemList.SHIELDED_ACCELERATOR_CASING, 0))) - - .build(); - } - - private float outputEnergy; - private int outputRate; - private int outputParticle; - private float outputFocus; - - private int length; - - public LINAC(int id, String name, String nameRegional) { - super(id, name, nameRegional); - } - - public LINAC(String name) { - super(name); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity te) { - return new LINAC(this.mName); - } - - @Override - protected GT_Multiblock_Tooltip_Builder createTooltip() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Particle Accelerator") - .addInfo("Controller block for the LINAC") - .addInfo("Accelerates charged particles to higher energies") - .addInfo("Increasing length increases output energy, but decreases focus") - .addInfo("Use a lower temperature coolant to improve focus") - // .addInfo("Extendable, with a minimum length of 18 blocks") - .addInfo(DescTextLocalization.BLUEPRINT_INFO) - .addInfo(DescTextLocalization.BEAMLINE_SCANNER_INFO) - .addInfo("Valid Coolants:"); - - // Valid coolant list - for (String fluidName : BeamlineRecipeLoader.coolantMap.keySet()) { - - tt.addInfo( - "- " + FluidRegistry.getFluid(fluidName) - .getLocalizedName(null)); - - } - - tt.addInfo("Requires (length + 1)kL/s of coolant") - .addSeparator() - .beginVariableStructureBlock(7, 7, 7, 7, 19, 83, false) - .addController("Front bottom") - .addCasingInfoRange(LanthItemList.SHIELDED_ACCELERATOR_CASING.getLocalizedName(), 325, 1285, false) - .addCasingInfoRange(LanthItemList.COOLANT_DELIVERY_CASING.getLocalizedName(), 148, 852, false) - .addCasingInfoRange(LanthItemList.SHIELDED_ACCELERATOR_GLASS.getLocalizedName(), 127, 703, false) - .addCasingInfoRange("Superconducting Coil Block", 56, 312, false) - .addCasingInfoRange(LanthItemList.ELECTRODE_CASING.getLocalizedName(), 156, 732, false) - .addCasingInfoExactly("Grate Machine Casing", 47, false) - .addCasingInfoExactly("Borosilicate Glass (LuV+)", 48, false) - .addEnergyHatch(addDotText(1)) - .addMaintenanceHatch(addDotText(1)) - .addInputHatch(addDotText(2)) - .addOutputHatch(addDotText(2)) - .addOtherStructurePart("Beamline Input Hatch", addDotText(3)) - .addOtherStructurePart("Beamline Output Hatch", addDotText(4)) - - .toolTipFinisher("GTNH: Lanthanides");; - return tt; - } - - private boolean addBeamLineInputHatch(IGregTechTileEntity te, int casingIndex) { - - if (te == null) return false; - - IMetaTileEntity mte = te.getMetaTileEntity(); - - if (mte == null) return false; - - if (mte instanceof TileHatchInputBeamline) { - return this.mInputBeamline.add((TileHatchInputBeamline) mte); - } - - return false; - } - - private boolean addBeamLineOutputHatch(IGregTechTileEntity te, int casingIndex) { - - if (te == null) return false; - - IMetaTileEntity mte = te.getMetaTileEntity(); - - if (mte == null) return false; - - if (mte instanceof TileHatchOutputBeamline) { - return this.mOutputBeamline.add((TileHatchOutputBeamline) mte); - } - - return false; - } - - @Override - public boolean checkRecipe(ItemStack itemStack) { - - float tempFactor = 0; - // Focus as determined by multi properties - float machineFocus = 0; - // Input particle focus - float inputFocus = 0; - - // Output focus to be set - outputFocus = 0; - - float voltageFactor = 0; - float inputEnergy = 0; - - machineTemp = 0; - - // Energy quantity determined by multi - float machineEnergy = 0; - outputEnergy = 0; - - int particleId = 0; - outputParticle = 0; - - int inputRate = 0; - outputRate = 0; - - ArrayList<FluidStack> tFluidInputs = this.getStoredFluids(); - if (tFluidInputs.size() == 0) { - this.doRandomMaintenanceDamage(); // Penalise letting coolant run dry - this.stopMachine(SimpleShutDownReason.ofCritical("gtnhlanth.nocoolant")); - return false; - } - - // Coolant input - FluidStack primFluid = tFluidInputs.get(0); - - // 1b (1000L)/m/operation - final int fluidConsumed = 1000 * length; - - this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - - if (this.getInputInformation() == null) { - return false; - } - - if (this.getInputInformation() - .getEnergy() == 0) { - return false; - } - - particleId = this.getInputInformation() - .getParticleId(); - Particle inputParticle = Particle.getParticleFromId(particleId); - - if (!inputParticle.canAccelerate()) { - stopMachine(SimpleShutDownReason.ofCritical("gtnhlanth.noaccel")); - return false; - } - - mMaxProgresstime = 1 * TickTime.SECOND; - // Consume the input tier's corresponding practical voltage instead of the maximum suggested by the logic - mEUt = (int) -GT_Values.VP[(int) this.getInputVoltageTier()]; - - // Particle stays the same with this multiblock - outputParticle = particleId; - - if (primFluid.isFluidEqual(new FluidStack(FluidRegistry.getFluid("ic2coolant"), 1))) { - tempFactor = calculateTemperatureFactor(60); // Default temp of 300 is unreasonable - machineTemp = 60; // Solely for tricorder use - } else { - tempFactor = calculateTemperatureFactor( - primFluid.getFluid() - .getTemperature()); - machineTemp = primFluid.getFluid() - .getTemperature(); // Solely for tricorder use - } - - machineFocus = Math.max(((-0.9f) * this.length * tempFactor) + 110, 5); // Min of 5 - if (machineFocus > 90) { // Max of 90 - machineFocus = 90; - } - - inputFocus = this.getInputInformation() - .getFocus(); - - outputFocus = (inputFocus > machineFocus) ? ((inputFocus + machineFocus) / 2) - : inputFocus * (machineFocus / 100); // If input focus > machine focus, take the average of both, else - // weigh the former by the latter - - long voltage = this.getMaxInputVoltage(); - // voltageFactor = calculateVoltageFactor(voltage); - - // machineEnergy = Math.max(-((60) / this.length) * voltageFactor + 60_000, 2000); // Minimum of 2000keV - - machineEnergy = (float) Math.max(length / 4 * Math.pow(voltage, 1.0 / 3.0), 50); // Minimum of 50keV - - inputEnergy = this.getInputInformation() - .getEnergy(); - /* - * outputEnergy = Math.min( - * (1 + inputEnergy / Particle.getParticleFromId(outputParticle) - * .maxSourceEnergy()) * machineEnergy, - * 120_000); // TODO more complex calculation than just - * // addition - */ - - outputEnergy = (float) Math.pow( - 10, - 1 + inputEnergy / Particle.getParticleFromId(outputParticle) - .maxSourceEnergy()) - * machineEnergy; - - inputRate = this.getInputInformation() - .getRate(); - outputRate = inputRate; // Cannot increase rate with this multiblock - - if (Util.coolantFluidCheck(primFluid, fluidConsumed)) { - - this.stopMachine(SimpleShutDownReason.ofCritical("gtnhlanth.inscoolant")); - return false; - - } - - primFluid.amount -= fluidConsumed; - - Fluid fluidOutput = BeamlineRecipeLoader.coolantMap.get( - primFluid.getFluid() - .getName()); - - if (Objects.isNull(fluidOutput)) return false; - - FluidStack fluidOutputStack = new FluidStack(fluidOutput, fluidConsumed); - - if (Objects.isNull(fluidOutputStack)) return false; - - this.addFluidOutputs(new FluidStack[] { fluidOutputStack }); - - outputAfterRecipe(); - - return true; - } - - private void outputAfterRecipe() { - - if (!mOutputBeamline.isEmpty()) { - - BeamLinePacket packet = new BeamLinePacket( - new BeamInformation(outputEnergy, outputRate, outputParticle, outputFocus)); - - for (TileHatchOutputBeamline o : mOutputBeamline) { - - o.q = packet; - } - } - } - - @Override - public void stopMachine() { - - // GT_Log.out.print("Machine stopped"); - outputFocus = 0; - outputEnergy = 0; - outputParticle = 0; - outputRate = 0; - machineTemp = 0; - super.stopMachine(); - } - - @Override - public void stopMachine(ShutDownReason reason) { - - outputFocus = 0; - outputEnergy = 0; - outputParticle = 0; - outputRate = 0; - machineTemp = 0; - super.stopMachine(reason); - - } - - @Override - public String[] getInfoData() { - - long storedEnergy = 0; - long maxEnergy = 0; - for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) { - if (tHatch.isValid()) { - storedEnergy += tHatch.getBaseMetaTileEntity() - .getStoredEU(); - maxEnergy += tHatch.getBaseMetaTileEntity() - .getEUCapacity(); - } - } - - BeamInformation information = this.getInputInformation(); - - return new String[] { - /* 1 */ StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(mProgresstime / 20) - + EnumChatFormatting.RESET - + " s / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(mMaxProgresstime / 20) - + EnumChatFormatting.RESET - + " s", - /* 2 */ StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(storedEnergy) - + EnumChatFormatting.RESET - + " EU / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(maxEnergy) - + EnumChatFormatting.RESET - + " EU", - /* 3 */ StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " - + EnumChatFormatting.RED - + GT_Utility.formatNumbers(getActualEnergyUsage()) - + EnumChatFormatting.RESET - + " EU/t", - /* 4 */ StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(getMaxInputVoltage()) - + EnumChatFormatting.RESET - + " EU/t(*2A) " - + StatCollector.translateToLocal("GT5U.machines.tier") - + ": " - + EnumChatFormatting.YELLOW - + VN[GT_Utility.getTier(getMaxInputVoltage())] - + EnumChatFormatting.RESET, - /* 5 */ StatCollector.translateToLocal("GT5U.multiblock.problems") + ": " - + EnumChatFormatting.RED - + (getIdealStatus() - getRepairStatus()) - + EnumChatFormatting.RESET - + " " - + StatCollector.translateToLocal("GT5U.multiblock.efficiency") - + ": " - + EnumChatFormatting.YELLOW - + Float.toString(mEfficiency / 100.0F) - + EnumChatFormatting.RESET - + " %", - - /* 7 */ EnumChatFormatting.BOLD + StatCollector.translateToLocal("beamline.info") - + ": " - + EnumChatFormatting.RESET, - - StatCollector.translateToLocal("beamline.temperature") + ": " // Temperature: - + EnumChatFormatting.DARK_RED - + machineTemp - + EnumChatFormatting.RESET - + " K", // e.g. "137 K" - - StatCollector.translateToLocal("beamline.coolusage") + ": " // Coolant usage: - + EnumChatFormatting.AQUA - + length - + EnumChatFormatting.RESET - + " kL/s", // e.g. "24 kL/s - - /* 8 */ EnumChatFormatting.BOLD + StatCollector.translateToLocal("beamline.in_pre") - + ": " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.particle") + ": " // "Multiblock Beamline Input:" - + EnumChatFormatting.GOLD - + Particle.getParticleFromId(information.getParticleId()) - .getLocalisedName() // e.g. "Electron - // (e-)" - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.energy") + ": " // "Energy:" - + EnumChatFormatting.DARK_RED - + information.getEnergy() - + EnumChatFormatting.RESET - + " keV", // e.g. "10240 keV" - StatCollector.translateToLocal("beamline.focus") + ": " // "Focus:" - + EnumChatFormatting.BLUE - + information.getFocus() - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.amount") + ": " // "Amount:" - + EnumChatFormatting.LIGHT_PURPLE - + information.getRate(), - EnumChatFormatting.BOLD + StatCollector.translateToLocal("beamline.out_pre") // "Multiblock Beamline - // Output:" - + ": " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.particle") + ": " - + EnumChatFormatting.GOLD - + Particle.getParticleFromId(this.outputParticle) - .getLocalisedName() - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.energy") + ": " - + EnumChatFormatting.DARK_RED - + this.outputEnergy - + EnumChatFormatting.RESET - + " keV", - StatCollector.translateToLocal( - "beamline.focus") + ": " + EnumChatFormatting.BLUE + this.outputFocus + " " + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.amount") + ": " - + EnumChatFormatting.LIGHT_PURPLE - + this.outputRate, }; - } - - private BeamInformation getInputInformation() { - - for (TileHatchInputBeamline in : this.mInputBeamline) { // Easy way to find the desired input. Efficient? No. - // Will it matter? No :boubs_glasses: - - if (in.q == null) return new BeamInformation(0, 0, 0, 0); - // if (in.q == null) return new BeamInformation(10000, 10, 0, 90); // temporary for testing purposes - - return in.q.getContent(); - } - return null; - } - - private static float calculateTemperatureFactor(int fluidTemp) { - - float factor = (float) Math.pow(1.1, 0.2 * fluidTemp); - return factor; - } - - /* - * private static float calculateVoltageFactor(long voltage) { - * float factor = (float) Math.pow(1.00009, -(0.1 * voltage - 114000)); - * return factor; - * } - */ - - @Override - public String[] getStructureDescription(ItemStack arg0) { - return DescTextLocalization.addText("LINAC.hint", 11); - } - - @Override - public boolean checkMachine(IGregTechTileEntity mte, ItemStack stack) { - - mInputBeamline.clear(); - mOutputBeamline.clear(); - - this.outputEnergy = 0; - this.outputRate = 0; - this.outputParticle = 0; - this.outputFocus = 0; - - this.glassTier = 0; - - this.onEndInnerLayer = false; - - length = 8; // Base piece length - - if (!checkPiece(STRUCTURE_PIECE_BASE, 3, 6, 0)) return false; - - while (length < 128) { - - if (!checkPiece(STRUCTURE_PIECE_LAYER, 3, 6, -length)) { - if (!checkPiece(STRUCTURE_PIECE_END, 3, 6, -length)) { - return false; - } - break; - } ; - - length += 2; - } - - // if (!checkPiece(STRUCTURE_PIECE_END, 3, 6, -length)) return false; - - // Likely off by one or two, not visible to player however so doesn't particularly matter - length += 8; - - return this.mInputBeamline.size() == 1 && this.mOutputBeamline.size() == 1 - && this.mMaintenanceHatches.size() == 1 - && this.mEnergyHatches.size() <= 2 - && this.glassTier >= MIN_GLASS_TIER; - } - - @Override - public void construct(ItemStack stackSize, boolean hintsOnly) { - - buildPiece(STRUCTURE_PIECE_BASE, stackSize, hintsOnly, 3, 6, 0); - - int lLength = Math.max(stackSize.stackSize + 7, 8); // !! - - if (!(lLength % 2 == 0)) { - lLength++; // Otherwise you get gaps at the end - } - - for (int i = -8; i > -lLength - 1; i -= 2) { - - // GT_Log.out.print("Building inner piece! i = " + i); - - buildPiece(STRUCTURE_PIECE_LAYER, stackSize, hintsOnly, 3, 6, i); - } - - buildPiece(STRUCTURE_PIECE_END, stackSize, hintsOnly, 3, 6, -(lLength + 2)); - - StructureLib.addClientSideChatMessages("Length: " + (11 + lLength) + " blocks."); - } - - @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { - - elementBudget = 200; // Maybe make a config - - if (mMachine) return -1; - - int build = 0; - - build = survivialBuildPiece(STRUCTURE_PIECE_BASE, stackSize, 3, 6, 0, elementBudget, env, false, true); - - if (build >= 0) return build; // Incomplete - - int lLength = Math.max(stackSize.stackSize + 7, 8); // !! - - if (!(lLength % 2 == 0)) { - lLength++; // Otherwise you get gaps at the end - } - - for (int i = -8; i > -lLength - 1; i -= 2) { - - build = survivialBuildPiece(STRUCTURE_PIECE_LAYER, stackSize, 3, 6, i, elementBudget, env, false, true); - - if (build >= 0) return build; - - } - - int finalOutput = survivialBuildPiece( - STRUCTURE_PIECE_END, - stackSize, - 3, - 6, - -(lLength + 2), - elementBudget, - env, - false, - true); - - return finalOutput; - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing, - int aColorIndex, boolean active, boolean aRedstone) { - - // Placeholder - if (side == facing) { - if (active) return new ITexture[] { casingTexturePages[0][47], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW) - .extFacing() - .glow() - .build() }; - return new ITexture[] { casingTexturePages[0][47], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_GLOW) - .extFacing() - .glow() - .build() }; - } - return new ITexture[] { casingTexturePages[0][47] }; - } - - @Override - public IStructureDefinition<LINAC> getStructureDefinition() { - return STRUCTURE_DEFINITION; - } - - public boolean addInputHatchToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - this.onEndInnerLayer = true; - return super.addInputHatchToMachineList(aTileEntity, aBaseCasingIndex); - } - - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - } - - @Override - public int getMaxEfficiency(ItemStack aStack) { - return 10000; - } - - @Override - public int getDamageToComponent(ItemStack aStack) { - return 0; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack aStack) { - return false; - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/SourceChamber.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/SourceChamber.java deleted file mode 100644 index 0626118a25..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/SourceChamber.java +++ /dev/null @@ -1,410 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity; - -import static com.elisis.gtnhlanth.util.DescTextLocalization.BLUEPRINT_INFO; -import static com.elisis.gtnhlanth.util.DescTextLocalization.addDotText; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static gregtech.api.enums.GT_HatchElement.Energy; -import static gregtech.api.enums.GT_HatchElement.InputBus; -import static gregtech.api.enums.GT_HatchElement.Maintenance; -import static gregtech.api.enums.GT_HatchElement.OutputBus; -import static gregtech.api.enums.GT_Values.VN; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; -import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; - -import java.util.ArrayList; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; - -import com.elisis.gtnhlanth.common.beamline.BeamInformation; -import com.elisis.gtnhlanth.common.beamline.BeamLinePacket; -import com.elisis.gtnhlanth.common.beamline.Particle; -import com.elisis.gtnhlanth.common.hatch.TileHatchOutputBeamline; -import com.elisis.gtnhlanth.common.register.LanthItemList; -import com.elisis.gtnhlanth.common.tileentity.recipe.beamline.BeamlineRecipeAdder2; -import com.elisis.gtnhlanth.common.tileentity.recipe.beamline.RecipeSC; -import com.elisis.gtnhlanth.util.DescTextLocalization; -import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; - -import gregtech.api.GregTech_API; -import gregtech.api.enums.GT_Values; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import gregtech.api.recipe.RecipeMap; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.shutdown.SimpleShutDownReason; - -public class SourceChamber extends GT_MetaTileEntity_EnhancedMultiBlockBase<SourceChamber> - implements ISurvivalConstructable { - - private static final IStructureDefinition<SourceChamber> STRUCTURE_DEFINITION; - - private ArrayList<TileHatchOutputBeamline> mOutputBeamline = new ArrayList<>(); - - private static final int CASING_INDEX = GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings5, 14); - - private float outputEnergy; - private int outputRate; - private int outputParticle; - private float outputFocus; - - static { - STRUCTURE_DEFINITION = StructureDefinition.<SourceChamber>builder() - .addShape( - "sc", - new String[][] { { "ccccc", "ckkkc", "ckikc", "ckkkc", "dd~dd" }, - { "ckkkc", "keeek", "ke-ek", "keeek", "ccocc" }, { "ckkkc", "k---k", "k---k", "k---k", "ccccc" }, - { "ckkkc", "k---k", "k---k", "k---k", "ccccc" }, { "ckkkc", "keeek", "ke-ek", "keeek", "ccccc" }, - { "ccccc", "ckkkc", "ckbkc", "ckkkc", "ccccc" } }) - .addElement('c', ofBlock(LanthItemList.SHIELDED_ACCELERATOR_CASING, 0)) - .addElement('k', ofBlock(LanthItemList.SHIELDED_ACCELERATOR_GLASS, 0)) - .addElement('e', ofBlock(LanthItemList.ELECTRODE_CASING, 0)) - .addElement( - 'b', - buildHatchAdder(SourceChamber.class).hatchClass(TileHatchOutputBeamline.class) - .casingIndex(CASING_INDEX) - .dot(4) - .adder(SourceChamber::addBeamLineOutputHatch) - .build()) - .addElement( - 'i', - buildHatchAdder(SourceChamber.class).atLeast(InputBus) - .casingIndex(CASING_INDEX) - .dot(1) - .build()) - .addElement( - 'o', - buildHatchAdder(SourceChamber.class).atLeast(OutputBus) - .casingIndex(CASING_INDEX) - .dot(2) - .build()) - .addElement( - 'd', - buildHatchAdder(SourceChamber.class).atLeast(Maintenance, Energy) - .casingIndex(CASING_INDEX) - .dot(3) - .buildAndChain(ofBlock(LanthItemList.SHIELDED_ACCELERATOR_CASING, 0))) - - .build(); - } - - public SourceChamber(int id, String name, String nameRegional) { - super(id, name, nameRegional); - } - - public SourceChamber(String name) { - super(name); - } - - @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { - if (mMachine) return -1; - return survivialBuildPiece("sc", stackSize, 2, 4, 0, elementBudget, env, false, true); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity te) { - return new SourceChamber(this.mName); - } - - @Override - protected GT_Multiblock_Tooltip_Builder createTooltip() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Particle Source") - .addInfo("Controller block for the Source Chamber") - .addInfo(BLUEPRINT_INFO) - .addInfo(DescTextLocalization.BEAMLINE_SCANNER_INFO) - .addSeparator() - .beginStructureBlock(5, 5, 6, true) - .addController("Front bottom") - .addCasingInfoExactly(LanthItemList.SHIELDED_ACCELERATOR_CASING.getLocalizedName(), 56, false) - .addCasingInfoExactly(LanthItemList.SHIELDED_ACCELERATOR_GLASS.getLocalizedName(), 52, false) - .addCasingInfoExactly(LanthItemList.ELECTRODE_CASING.getLocalizedName(), 16, false) - .addOtherStructurePart("Beamline Output Hatch", addDotText(4)) - .addEnergyHatch(addDotText(3)) - .addMaintenanceHatch(addDotText(3)) - .addInputBus(addDotText(1)) - .addOutputBus(addDotText(2)) - .toolTipFinisher("GTNH: Lanthanides"); - return tt; - } - - private boolean addBeamLineOutputHatch(IGregTechTileEntity te, int casingIndex) { - - if (te == null) return false; - - IMetaTileEntity mte = te.getMetaTileEntity(); - - if (mte == null) return false; - - if (mte instanceof TileHatchOutputBeamline) { - return this.mOutputBeamline.add((TileHatchOutputBeamline) mte); - } - - return false; - } - /* - * protected OverclockDescriber createOverclockDescriber() { return new EUNoTotalOverclockDescriber((byte) 4, 1); } - */ - - @Override - public boolean checkRecipe(ItemStack itemStack) { - - // GT_Log.out.print("In checkRecipe"); - - // No input particle, so no input quantities - - outputFocus = 0; - outputEnergy = 0; - outputParticle = 0; - outputRate = 0; - - ItemStack[] tItems = this.getStoredInputs() - .toArray(new ItemStack[0]); - // GT_Log.out.print(Arrays.toString(tItems)); - long tVoltageMaxTier = this.getMaxInputVoltage(); // Used to keep old math the same - long tVoltageActual = GT_Values.VP[(int) this.getInputVoltageTier()]; - - RecipeSC tRecipe = (RecipeSC) BeamlineRecipeAdder2.instance.SourceChamberRecipes - .findRecipe(this.getBaseMetaTileEntity(), false, tVoltageActual, new FluidStack[] {}, tItems); - - if (tRecipe == null || !tRecipe.isRecipeInputEqual(true, new FluidStack[] {}, tItems)) return false; // Consumes - // input - // item - - this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - - this.mMaxProgresstime = tRecipe.mDuration; - if (mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1) return false; - - mEUt = (int) -tVoltageActual; - if (this.mEUt > 0) this.mEUt = (-this.mEUt); - - outputParticle = tRecipe.particleId; - float maxParticleEnergy = Particle.getParticleFromId(outputParticle) - .maxSourceEnergy(); // The maximum energy a - // particle can possess - // when produced by this - // multiblock - float maxMaterialEnergy = tRecipe.maxEnergy; // The maximum energy for the recipe processed - outputEnergy = (float) Math.min( - (-maxMaterialEnergy) * Math.pow(1.001, -(tRecipe.energyRatio) * (tVoltageMaxTier - tRecipe.mEUt)) - + maxMaterialEnergy, - maxParticleEnergy); - - if (outputEnergy <= 0) { - stopMachine(SimpleShutDownReason.ofCritical("gtnhlanth.scerror")); - return false; - } - - outputFocus = tRecipe.focus; - outputRate = tRecipe.rate; - - this.mOutputItems = tRecipe.mOutputs; - this.updateSlots(); - - outputAfterRecipe(); - - return true; - } - - @Override - public String[] getStructureDescription(ItemStack arg0) { - return DescTextLocalization.addText("SourceChamber.hint", 7); // Generate 7 localised hint strings in structure - // description - } - - private void outputAfterRecipe() { - - if (!mOutputBeamline.isEmpty()) { - - BeamLinePacket packet = new BeamLinePacket( - new BeamInformation(outputEnergy, outputRate, outputParticle, outputFocus)); - - for (TileHatchOutputBeamline o : mOutputBeamline) { - - o.q = packet; - } - } - } - - @Override - public void stopMachine() { - outputFocus = 0; - outputEnergy = 0; - outputParticle = 0; - outputRate = 0; - super.stopMachine(); - } - - @Override - public RecipeMap<?> getRecipeMap() { - return BeamlineRecipeAdder2.instance.SourceChamberRecipes; - } - - @Override - public String[] getInfoData() { - - long storedEnergy = 0; - long maxEnergy = 0; - for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) { - if (tHatch.isValid()) { - storedEnergy += tHatch.getBaseMetaTileEntity() - .getStoredEU(); - maxEnergy += tHatch.getBaseMetaTileEntity() - .getEUCapacity(); - } - } - - return new String[] { - /* 1 */ StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(mProgresstime / 20) - + EnumChatFormatting.RESET - + " s / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(mMaxProgresstime / 20) - + EnumChatFormatting.RESET - + " s", - /* 2 */ StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(storedEnergy) - + EnumChatFormatting.RESET - + " EU / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(maxEnergy) - + EnumChatFormatting.RESET - + " EU", - /* 3 */ StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " - + EnumChatFormatting.RED - + GT_Utility.formatNumbers(getActualEnergyUsage()) - + EnumChatFormatting.RESET - + " EU/t", - /* 4 */ StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(getMaxInputVoltage()) - + EnumChatFormatting.RESET - + " EU/t(*2A) " - + StatCollector.translateToLocal("GT5U.machines.tier") - + ": " - + EnumChatFormatting.YELLOW - + VN[GT_Utility.getTier(getMaxInputVoltage())] - + EnumChatFormatting.RESET, - /* 5 */ StatCollector.translateToLocal("GT5U.multiblock.problems") + ": " - + EnumChatFormatting.RED - + (getIdealStatus() - getRepairStatus()) - + EnumChatFormatting.RESET - + " " - + StatCollector.translateToLocal("GT5U.multiblock.efficiency") - + ": " - + EnumChatFormatting.YELLOW - + Float.toString(mEfficiency / 100.0F) - + EnumChatFormatting.RESET - + " %", - EnumChatFormatting.BOLD + StatCollector.translateToLocal("beamline.out_pre") - + ": " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.particle") + ": " - + EnumChatFormatting.GOLD - + Particle.getParticleFromId(this.outputParticle) - .getLocalisedName() - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.energy") + ": " - + EnumChatFormatting.DARK_RED - + this.outputEnergy - + EnumChatFormatting.RESET - + " keV", - StatCollector.translateToLocal( - "beamline.focus") + ": " + EnumChatFormatting.BLUE + this.outputFocus + " " + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.amount") + ": " - + EnumChatFormatting.LIGHT_PURPLE - + this.outputRate, }; - } - - @Override - public void construct(ItemStack stackSize, boolean hintsOnly) { - buildPiece("sc", stackSize, hintsOnly, 2, 4, 0); - } - - @Override - public IStructureDefinition<SourceChamber> getStructureDefinition() { - return STRUCTURE_DEFINITION; - } - - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - } - - @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - - this.mOutputBeamline.clear(); // Necessary due to the nature of the beamline hatch adder - - return checkPiece("sc", 2, 4, 0) && this.mMaintenanceHatches.size() == 1 - && this.mInputBusses.size() == 1 - && this.mOutputBusses.size() == 1 - && this.mOutputBeamline.size() == 1 - && this.mEnergyHatches.size() == 1; - } - - @Override - public int getMaxEfficiency(ItemStack aStack) { - return 10000; - } - - @Override - public int getDamageToComponent(ItemStack aStack) { - return 0; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack aStack) { - return false; - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection side, ForgeDirection facing, - int colorIndex, boolean active, boolean redstoneLevel) { - - // Placeholder - if (side == facing) { - if (active) return new ITexture[] { casingTexturePages[1][14], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW) - .extFacing() - .glow() - .build() }; - return new ITexture[] { casingTexturePages[1][14], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_GLOW) - .extFacing() - .glow() - .build() }; - } - return new ITexture[] { casingTexturePages[1][14] }; - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Synchrotron.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/Synchrotron.java deleted file mode 100644 index ee63bc8d20..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Synchrotron.java +++ /dev/null @@ -1,1078 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity; - -import static com.elisis.gtnhlanth.util.DescTextLocalization.addDotText; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockAdder; -import static gregtech.api.enums.GT_HatchElement.Energy; -import static gregtech.api.enums.GT_HatchElement.InputHatch; -import static gregtech.api.enums.GT_HatchElement.Maintenance; -import static gregtech.api.enums.GT_HatchElement.OutputHatch; -import static gregtech.api.enums.GT_Values.VN; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; -import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; - -import java.util.ArrayList; -import java.util.Objects; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; - -import com.elisis.gtnhlanth.common.beamline.BeamInformation; -import com.elisis.gtnhlanth.common.beamline.BeamLinePacket; -import com.elisis.gtnhlanth.common.beamline.Particle; -import com.elisis.gtnhlanth.common.block.AntennaCasing; -import com.elisis.gtnhlanth.common.hatch.TileHatchInputBeamline; -import com.elisis.gtnhlanth.common.hatch.TileHatchOutputBeamline; -import com.elisis.gtnhlanth.common.register.LanthItemList; -import com.elisis.gtnhlanth.common.tileentity.recipe.beamline.BeamlineRecipeLoader; -import com.elisis.gtnhlanth.util.DescTextLocalization; -import com.elisis.gtnhlanth.util.Util; -import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass; -import com.google.common.collect.ImmutableMap; -import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; - -import gregtech.api.GregTech_API; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.TickTime; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.shutdown.ShutDownReason; -import gregtech.api.util.shutdown.SimpleShutDownReason; - -public class Synchrotron extends GT_MetaTileEntity_EnhancedMultiBlockBase<Synchrotron> - implements ISurvivalConstructable { - - private static final IStructureDefinition<Synchrotron> STRUCTURE_DEFINITION; - - protected static final String STRUCTURE_PIECE_ENTRANCE = "entrance"; - protected static final String STRUCTURE_PIECE_BASE = "base"; - - public static final int CONSUMED_FLUID = 32_000; // Fluid consumed per processed recipe, maybe increase with EU - public static final int MIN_INPUT_FOCUS = 25; // Inclusive - - private ArrayList<TileHatchInputBeamline> mInputBeamline = new ArrayList<>(); - private ArrayList<TileHatchOutputBeamline> mOutputBeamline = new ArrayList<>(); - - public ArrayList<AntennaCasing> mAntennaCasings = new ArrayList<>(); - - private static final int CASING_INDEX = GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings5, 14); - - private static final byte MIN_GLASS_TIER = 6; - - private int energyHatchTier; - - private int antennaeTier; - - private Byte glassTier; - - /* - * c: Shielded accelerator casing v: Vacuum k: Superconducting coil d: Coolant Delivery casing - */ - - // TODO: E > 1200eV for x-ray lithography - // spotless:off - static { - - STRUCTURE_DEFINITION = StructureDefinition.<Synchrotron>builder().addShape( - STRUCTURE_PIECE_ENTRANCE, - - - - new String[][] { - { - " ", - " ccc ", - " cgggc ", - " cgvgc ", - " cgggc ", - " ccc " - } - }) - .addShape( - STRUCTURE_PIECE_BASE, - - new String[][] { - { - " ", - " ccc ", - " ccccc cjjjjjc ", - " cc-cc cjjc~cjjc ", - " ccccc cjjjjjc ", - " ccc ", - " " - }, - { - " ", - " ccc ccccccccccc ", - " c---c ccc-------ccc ", - " c---c ccc-------ccc ", - " c---c ccc-------ccc ", - " ccc ccccccccccc ", - " " - }, - { - " ccccccccccc ", - " ccc cc-----------cc ", - " c---c cc-------------cc ", - " c---c cc-------------cc ", - " c---c cc-------------cc ", - " ccc ccc---------ccc ", - " ccccccccccc " - }, - { - " ccccccccccccccc ", - " ccc cc---------------cc ", - " c---ccc-----------------c ", - " c---ccc-----------------cc ", - " c---ccc-----------------c ", - " ccc cc---------------cc ", - " ccccccccccccccc ", - - }, - { - " ccc ccccccccccccccccc ", - " ckkkccc-----------------cc ", - "ck---kc-------------------cc ", - "ck---kc--------------------c ", - "ck---kc-------------------cc ", - " ckkkccc-----------------cc ", - " ccc cccccccccccccccccc " - - }, - { - " cccccccccccc ccccccc ", - " cdddcc-------ccccc-------cc ", - "cd---d----------------------c ", - "cd---d----------------------c ", - "cd---d----------------------c ", - " cdddcc-------ccccc-------cc ", - " cccccccccccc ccccccc ", - }, - { - " ccccccccc ccccc ", - " ckkkc-----cccc cccc-----cc ", - "ck---k-------ccccccc--------c ", - "ck---k-------ccccccc---------c ", - "ck---k-------ccccccc--------c ", - " ckkkc-----cccc cccc-----cc ", - " ccccccccc ccccc " - }, - { - " cccccccc ccccc ", - " c--------cc cc-----cc ", - "c----------cc cc-------c ", - "c----------cc cc-------c ", - "c----------cc cc-------c ", - " c--------cc cc-----cc ", - " cccccccc ccccc " - - }, - { - " ccccccc ccccc ", - " c-------c c-----c ", - "c---------c c-------c ", - "c---------c c-------c ", - "c---------c c-------c ", - " c-------c c-----c ", - " ccccccc ccccc " - - }, - { - " cccccc ccccc ", - " c------c c-----c ", - "c--------c c------c ", - "c--------c c------c ", - "c--------c c------c ", - " c------c c-----c ", - " cccccc ccccc " - - }, - { - " ccccc cccc ", - " c-----c c----c ", - "c-------c c------c ", - "c-------c c------c ", - "c-------c c------c ", - " c-----c c----c ", - " ccccc cccc " - - }, - { - " cccc ccc ", - " c----cc cc---cc ", - "c------c c-----c ", - "c------c c-----c ", - "c------c c-----c ", - " c----cc cc---cc ", - " cccc ccc " - - }, - { - " cccc cccc ", - " c---cc c----c ", - "c------c c-----c ", - "c------c c-----cc ", - "c------c c-----c ", - " c---cc cc---c ", - " cccc cccc " - - }, - { - " cccc cccc ", - " c---cc c----c ", - "c-----c c----cc ", - "c-----c c----cc ", - "c-----c c----cc ", - " c---cc cc---c ", - " cccc cccc " - - }, - { - " ccc ccc ", - " ckkkcc cckkkc ", - "ck---kc ck---kc ", - "ck---kc ck---kc ", - "ck---kc ck---kc ", - " ckkkcc cckkkc ", - " ccc ccc " - - }, - { - " cec cec ", - " cnanc cnanc ", - "cn---nc cn---nc ", - "cn---nc cn---nc ", - "cn---nc cn---nc ", - " cnnnc cnnnc ", - " ccc ccc " - - }, - { - " cic cic ", - " cndnc cndnc ", - "cn---nc cn---nc ", - "cn---nc cn---nc ", - "cn---nc cn---nc ", - " cndnc cndnc ", - " coc coc " - - }, - { - " cec cec ", - " cnanc cnanc ", - "cn---nc cn---nc ", - "cn---nc cn---nc ", - "cn---nc cn---nc ", - " cnnnc cnnnc ", - " ccc ccc " - - }, - { - " ccc ccc ", - " ckkkcc cckkkc ", - "ck---kc ck---kc ", - "ck---kc ck---kc ", - "ck---kc ck---kc ", - " ckkkcc cckkkc ", - " ccc ccc " - - }, - { - " cccc cccc ", - " c----c c----c ", - "cc----c c----cc ", - "cc----c c----cc ", - "cc----c c----cc ", - " c---cc cc---c ", - " cccc cccc " - - }, - { - " cccc cccc ", - " c----c c----c ", - " c-----c c-----c ", - "cc-----c c-----cc ", - " c-----c c-----c ", - " c---cc cc---c ", - " cccc cccc " - - }, - { - " ccc ccc ", - " cc---cc cc---cc ", - " c-----c c-----c ", - " c-----c c-----c ", - " c-----c c-----c ", - " cc---cc cc---cc ", - " ccc ccc " - - }, - { - " cccc cccc ", - " c----c c----c ", - " c------c c------c ", - " c------c c------c ", - " c------c c------c ", - " c----c c----c ", - " cccc cccc " - - }, - { - " ccccc ccccc ", - " c-----c c-----c ", - " c------c c------c ", - " c------c c------c ", - " c------c c------c ", - " c-----c c-----c ", - " ccccc ccccc " - - }, - { - " ccccc ccccc ", - " c-----c c-----c ", - " c-------c c-------c ", - " c-------c c-------c ", - " c-------c c-------c ", - " c-----c c-----c ", - " ccccc ccccc " - - }, - { - " ccccc ccccc ", - " c-----cc cc-----c ", - " c-------cc cc-------cc ", - " c-------cc cc-------cc ", - " c-------cc cc-------cc ", - " c-----cc cc------c ", - " ccccc cccccc " - - }, - { - " ccccc ccccccc ", - " cc-----cccc cccc-----ccc ", - " c--------ccccccc--------cccc ", - " c--------ccccccc--------cccc ", - " c--------ccccccc--------cccc ", - " cc-----cccc cccc------cc ", - " ccccc cccccc " - - }, - { - " ccccccc cccccccccc ", - " cc-------ccccc--------cccc ", - " c---------kdkdk--------ccccccccc", - " c---------kdkdk--------ccccccccc", - " c---------kdkdk--------ccccccccc", - " cc-------ccccc--------cccc ", - " ccccccc cccccccc " - - }, - { - " cccccccccccccccccccc ", - " cc-------------------ccccccccc", - " cc---------------------------cg", - " c----------------------------cg", - " cc---------------------------cg", - " c-------------------ccccccccc", - " ccccccccccccccccccc " - - }, - { - " ccccccccccccccccccc ", - " cc-----------------cccccccccc", - " c--------------------------cg", - " cc---------------------------b", - " c--------------------------cg", - " c-----------------cccccccccc", - " ccccccccccccccccc " - - }, - { - " ccccccccccccccc ", - " ccc-------------ccccccccccc", - " cc------------------------cg", - " cc------------------------cg", - " cc------------------------cg", - " ccc-------------ccccccccccc", - " ccccccccccccc " - - }, - { - " ", - " cccccccccccccccccc ", - " ccc-kdkdk------ccccccccccc", - " cc--kdkdk------ccccccccccc", - " ccc-kdkdk------ccccccccccc", - " cccccccccccccccccc " - - }, - { - " ", - " ", - " cccccccccccccccc ", - " ccccccccccccccccc ", - " cccccccccccccccc ", - " ", - " " - - } - - } - - ).addElement('c', ofBlock(LanthItemList.SHIELDED_ACCELERATOR_CASING, 0)) - .addElement('k', ofBlock(GregTech_API.sBlockCasings1, 15)) // Superconducting coils - .addElement('d', ofBlock(LanthItemList.COOLANT_DELIVERY_CASING, 0)) - .addElement('e', buildHatchAdder(Synchrotron.class).atLeast(ImmutableMap.of(Energy, 4)).dot(6).casingIndex(CASING_INDEX).build()) - .addElement('n', ofBlock(LanthItemList.NIOBIUM_CAVITY_CASING, 0)) - .addElement('a', ofBlockAdder(Synchrotron::addAntenna, LanthItemList.ANTENNA_CASING_T1, 0)) //Antenna Casings - .addElement('i', buildHatchAdder(Synchrotron.class).atLeast(ImmutableMap.of(InputHatch, 2)).dot(4).casingIndex(CASING_INDEX).build()) - .addElement('o', buildHatchAdder(Synchrotron.class).atLeast(ImmutableMap.of(OutputHatch, 2)).dot(5).casingIndex(CASING_INDEX).build()) - .addElement('v', buildHatchAdder(Synchrotron.class).hatchClass(TileHatchInputBeamline.class).casingIndex(CASING_INDEX) - .dot(1).adder(Synchrotron::addBeamlineInputHatch).build()) - .addElement('b', buildHatchAdder(Synchrotron.class).hatchClass(TileHatchOutputBeamline.class).casingIndex(CASING_INDEX) - .dot(2).adder(Synchrotron::addBeamlineOutputHatch).build()) - .addElement('g', BorosilicateGlass.ofBoroGlass((byte) 0, MIN_GLASS_TIER, Byte.MAX_VALUE, (te, t) -> te.glassTier = t, te -> te.glassTier)) - .addElement('j', - buildHatchAdder(Synchrotron.class).atLeast(Maintenance).dot(3).casingIndex(CASING_INDEX) - .buildAndChain(LanthItemList.SHIELDED_ACCELERATOR_CASING, 0)) - - .build(); - - - - } - - // spotless:on - - /* - * v = pi * lorentz^2 * sfreq sfreq = sw / 2pi sw = e * B / mass(e) * c v = (e * B * l^2) / (2 * mass(e) * c) = - * 292.718624222 * l^2 * B - */ - - private float outputEnergy; - private int outputRate; - private int outputParticle; - private float outputFocus; - private float machineFocus; - - private int machineTemp; - - public Synchrotron(String aName) { - super(aName); - } - - public Synchrotron(int id, String name, String nameRegional) { - super(id, name, nameRegional); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new Synchrotron(this.mName); - } - - @Override - protected GT_Multiblock_Tooltip_Builder createTooltip() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Particle Accelerator") - .addInfo("Controller block for the Synchrotron") - .addInfo("Torus-shaped, accelerates electrons to produce high-energy electromagnetic radiation") - .addInfo(DescTextLocalization.BLUEPRINT_INFO) - .addInfo(DescTextLocalization.BEAMLINE_SCANNER_INFO) - .addInfo("Valid Coolants:"); - - // Valid coolant list - for (String fluidName : BeamlineRecipeLoader.coolantMap.keySet()) { - - tt.addInfo( - "- " + FluidRegistry.getFluid(fluidName) - .getLocalizedName(null)); - - } - - tt.addInfo("Requires 32 kL/s of coolant") - .addSeparator() - .beginStructureBlock(36, 7, 34, true) - .addController("Front middle") - .addCasingInfoExactly(LanthItemList.SHIELDED_ACCELERATOR_CASING.getLocalizedName(), 676, false) - .addCasingInfoExactly("Superconducting Coil Block", 90, false) - .addCasingInfoExactly("Niobium Cavity Casing", 64, false) - .addCasingInfoExactly(LanthItemList.COOLANT_DELIVERY_CASING.getLocalizedName(), 28, false) - .addCasingInfoExactly("Borosilicate Glass Block (LuV+)", 16, false) - .addCasingInfoExactly("Antenna Casing (must match)", 4, true) - .addOtherStructurePart("Beamline Input Hatch", addDotText(1)) - .addOtherStructurePart("Beamline Output Hatch", addDotText(2)) - .addMaintenanceHatch(addDotText(3)) - .addInputHatch(addDotText(4)) - .addOutputHatch(addDotText(5)) - .addEnergyHatch(addDotText(6)) - - .toolTipFinisher("GTNH: Lanthanides"); - return tt; - } - - private boolean addBeamlineInputHatch(IGregTechTileEntity te, int casingIndex) { - - if (te == null) return false; - - IMetaTileEntity mte = te.getMetaTileEntity(); - - if (mte == null) return false; - - if (mte instanceof TileHatchInputBeamline) { - return this.mInputBeamline.add((TileHatchInputBeamline) mte); - } - - return false; - - } - - private boolean addBeamlineOutputHatch(IGregTechTileEntity te, int casingIndex) { - - if (te == null) return false; - - IMetaTileEntity mte = te.getMetaTileEntity(); - - if (mte == null) return false; - - if (mte instanceof TileHatchOutputBeamline) { - return this.mOutputBeamline.add((TileHatchOutputBeamline) mte); - } - - return false; - - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing, - int aColorIndex, boolean active, boolean aRedstone) { - // Placeholder - if (side == facing) { - if (active) return new ITexture[] { casingTexturePages[1][14], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW) - .extFacing() - .glow() - .build() }; - return new ITexture[] { casingTexturePages[1][14], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_GLOW) - .extFacing() - .glow() - .build() }; - } - return new ITexture[] { casingTexturePages[1][14] }; - } - - @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { - elementBudget = 200; - - if (mMachine) return -1; - - int build = survivialBuildPiece(STRUCTURE_PIECE_ENTRANCE, stackSize, 16, 3, 1, elementBudget, env, false, true); - - if (build >= 0) return build; - - return survivialBuildPiece(STRUCTURE_PIECE_BASE, stackSize, 16, 3, 0, elementBudget, env, false, true); - - } - - @Override - public void construct(ItemStack stackSize, boolean hintsOnly) { - buildPiece(STRUCTURE_PIECE_ENTRANCE, stackSize, hintsOnly, 16, 3, 1); - buildPiece(STRUCTURE_PIECE_BASE, stackSize, hintsOnly, 16, 3, 0); - - } - - @Override - public IStructureDefinition<Synchrotron> getStructureDefinition() { - return STRUCTURE_DEFINITION; - } - - public boolean addEnergyInputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false; - } - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity == null) return false; - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { - - GT_MetaTileEntity_Hatch_Energy hatch = (GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity; - - // First energy hatch added - if (this.mEnergyHatches.size() == 0) this.energyHatchTier = hatch.mTier; - - // Disallow any hatches that don't match the tier of the first hatch added - if (hatch.mTier != this.energyHatchTier) return false; - - hatch.updateTexture(aBaseCasingIndex); - hatch.updateCraftingIcon(this.getMachineCraftingIcon()); - return mEnergyHatches.add(hatch); - } - return false; - } - - private boolean addAntenna(Block block, int meta) { - - if (block == null) return false; - - if (!(block instanceof AntennaCasing)) return false; - - AntennaCasing antennaBlock = (AntennaCasing) block; - - int antennaTier = antennaBlock.getTier(); - - // First antenna casing added - if (this.mAntennaCasings.size() == 0) this.antennaeTier = antennaTier; - - if (antennaTier != this.antennaeTier) return false; - - return mAntennaCasings.add(antennaBlock); - - } - - @Override - public boolean isCorrectMachinePart(ItemStack aStack) { - return true; - } - - @Override - public boolean checkRecipe(ItemStack aStack) { - - float inputEnergy = 0; - float inputFocus = 0; - float inputRate = 0; - int inputParticleId = 0; - - machineFocus = 0; - machineTemp = 0; - - outputEnergy = 0; - outputFocus = 0; - outputRate = 0; - outputParticle = 0; - - float tempFactor = 0; - - float voltageFactor = 0; - - ArrayList<FluidStack> fluidList = this.getStoredFluids(); - - if (fluidList.size() == 0) { - - this.stopMachine(SimpleShutDownReason.ofCritical("gtnhlanth.nocoolant")); - - return false; - } - - this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - - if (this.getInputInformation() == null) { - return false; - } - - if (this.getInputInformation() - .getEnergy() == 0) { // Only really applies if there's no input - return false; - } - - if (this.getInputInformation() - .getFocus() < MIN_INPUT_FOCUS) { - return false; - } - - inputParticleId = this.getInputInformation() - .getParticleId(); - - Particle inputParticle = Particle.getParticleFromId(inputParticleId); - - if (!inputParticle.canAccelerate()) { - stopMachine(SimpleShutDownReason.ofCritical("gtnhlanth.noaccel")); - return false; - } - - mMaxProgresstime = TickTime.SECOND; - - long voltage = this.getMaxInputVoltage(); - mEUt = (int) (-voltage / GT_Values.V[(int) this.getInputVoltageTier()] - * GT_Values.VP[(int) this.getInputVoltageTier()]); // Multiply VP by amps - - outputParticle = 1; // Photon - - FluidStack primaryFluid = fluidList.get(0); - - int fluidTemperature; - - if (primaryFluid.isFluidEqual(new FluidStack(FluidRegistry.getFluid("ic2coolant"), 1))) { - fluidTemperature = 60; // Default temp of 300 is unreasonable - } else { - fluidTemperature = primaryFluid.getFluid() - .getTemperature(); - } - - machineTemp = fluidTemperature; // Solely for tricorder info - - machineFocus = getMachineFocus(fluidTemperature); - - inputFocus = this.getInputInformation() - .getFocus(); - - outputFocus = (inputFocus > machineFocus) ? ((inputFocus + machineFocus) / 2.5f) - : inputFocus * (machineFocus / 100); // If input focus > machine focus, divide their sum by 2.5, else - // weigh the former by the latter. This punishes having too low a - // machine focus for low values of input focus - // E.g. An input focus of 50 requires a machine focus of 100 to get an - // output focus of 50, - // whereas an input focus of 60 only requires around 80 - // In general, as input focus increases, output scales better with - // machine focus - - voltageFactor = getVoltageFactor(voltage, this.antennaeTier); - - inputEnergy = this.getInputInformation() - .getEnergy(); - float mass = inputParticle.getMass(); - - // Perhaps divide by mass somehow here too - outputEnergy = (float) calculateOutputParticleEnergy(voltage, inputEnergy, this.antennaeTier); // maybe - // adjust - // behaviour here - - inputRate = this.getInputInformation() - .getRate(); - - outputRate = (int) (inputRate * getOutputRatetio(voltageFactor, this.antennaeTier)); - - if (outputRate == 0) { - stopMachine(SimpleShutDownReason.ofCritical("gtnhlanth.low_input_rate")); - return false; - } - - if (Util.coolantFluidCheck(primaryFluid, CONSUMED_FLUID)) { - - stopMachine(SimpleShutDownReason.ofCritical("gtnhlanth.inscoolant")); - return false; - - } - - primaryFluid.amount -= CONSUMED_FLUID; - - Fluid fluidOutput = BeamlineRecipeLoader.coolantMap.get( - primaryFluid.getFluid() - .getName()); - - if (Objects.isNull(fluidOutput)) return false; - - FluidStack fluidOutputStack = new FluidStack(fluidOutput, CONSUMED_FLUID); - - if (Objects.isNull(fluidOutputStack)) return false; - - this.addFluidOutputs(new FluidStack[] { fluidOutputStack }); - - outputAfterRecipe(); - - return true; - } - - private void outputAfterRecipe() { - - if (!mOutputBeamline.isEmpty()) { - - BeamLinePacket packet = new BeamLinePacket( - new BeamInformation(outputEnergy, outputRate, outputParticle, outputFocus)); - - for (TileHatchOutputBeamline o : mOutputBeamline) { - - o.q = packet; - } - } - } - - @Override - public void stopMachine() { - - outputFocus = 0; - outputEnergy = 0; - outputParticle = 0; - outputRate = 0; - machineFocus = 0; - machineTemp = 0; - super.stopMachine(); - - } - - @Override - public void stopMachine(ShutDownReason reason) { - - outputFocus = 0; - outputEnergy = 0; - outputParticle = 0; - outputRate = 0; - machineFocus = 0; - machineTemp = 0; - super.stopMachine(reason); - - } - - private BeamInformation getInputInformation() { - - for (TileHatchInputBeamline in : this.mInputBeamline) { - - if (in.q == null) return new BeamInformation(0, 0, 0, 0); - // if (in.q == null) return new BeamInformation(10000, 10, 0, 90); // TODO temporary for testing purposes - - return in.q.getContent(); - } - return null; - } - - private static float getVoltageFactor(long mEU, int antennaTier) { - - // float factor = (float) Math.pow(1.00004, -mEU * Math.pow(antennaTier, 1.0/3.0) + 80000); - float factor = (float) -Math.pow(1.1, -mEU / 2000 * Math.pow(antennaTier, 2.0 / 3.0)) + 1; // Strictly improves - // with higher tier - // antenna - return (float) Math.max(1.0, factor); - - } - - /* - * private static float getTemperatureFactor(int temperature) { float factor = (float) Math.pow(1.11, 0.18 * - * temperature); return factor; } - */ - private static double calculateOutputParticleEnergy(long voltage, double inputParticleEnergy, int antennaTier) { - - /* - * Energy in general increases as input energy increases, with the relationship between the machine EUt and - * energy being an negative exponential, with a maximum depending on both input particle energy and antenna - * tier. The extent to which the output depends on the former is determined by the cbrt of the latter, meaning - * that increases in antenna tier result in diminishing returns. In the same way, the curve of the output energy - * vs. machine voltage exponential depends on antenna tier, with an increase in antenna tier resulting in a more - * shallow curve up. The effect of this also increases with the tier. LaTeX: - * -\frac{l^{1.11t^{\frac{1}{3}}}}{40000000}\cdot\left(0.15^{\frac{2}{t^{\frac{3}{2}}}}\right)^{\frac{x}{60768}} - * \ +\ \frac{l^{1.11t^{\frac{1}{3}}}}{40000000} - */ - - double energy = (Math.pow(inputParticleEnergy, 1.13 * Math.pow(antennaTier, 4.0 / 9.0)) / 40_000_000) - * (-Math.pow(Math.pow(0.15, 2.0 / (Math.pow(antennaTier, 5.0 / 2.0))), voltage / 60768.0) + 1); // In - // keV - - return energy; - - } - - private static float getMachineFocus(int temperature) { - - return (float) Math.max(Math.min(Math.pow(1.5, -1.0 / 40.0 * (temperature - 480)), 90), 10); - } - - // Punny, right? - private static float getOutputRatetio(float voltageFactor, int antennaTier) { - return (float) (voltageFactor / (10 / Math.pow(2.5, antennaTier))); // Scale ratio with antenna tier, such a - // high - // exponential should be fine so long as - // there - // are only few antenna tiers - } - - @Override - public String[] getStructureDescription(ItemStack arg0) { - return DescTextLocalization.addText("Synchrotron.hint", 12); - } - - @Override - public String[] getInfoData() { - - long storedEnergy = 0; - long maxEnergy = 0; - for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) { - if (tHatch.isValid()) { - storedEnergy += tHatch.getBaseMetaTileEntity() - .getStoredEU(); - maxEnergy += tHatch.getBaseMetaTileEntity() - .getEUCapacity(); - } - } - - BeamInformation information = this.getInputInformation(); - - return new String[] { - /* 1 */ StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(mProgresstime / 20) - + EnumChatFormatting.RESET - + " s / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(mMaxProgresstime / 20) - + EnumChatFormatting.RESET - + " s", - /* 2 */ StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(storedEnergy) - + EnumChatFormatting.RESET - + " EU / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(maxEnergy) - + EnumChatFormatting.RESET - + " EU", - /* 3 */ StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " - + EnumChatFormatting.RED - + GT_Utility.formatNumbers(getActualEnergyUsage()) - + EnumChatFormatting.RESET - + " EU/t", - /* 4 */ StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(getMaxInputVoltage()) - + EnumChatFormatting.RESET - + " EU/t(*2A) " - + StatCollector.translateToLocal("GT5U.machines.tier") - + ": " - + EnumChatFormatting.YELLOW - + VN[GT_Utility.getTier(getMaxInputVoltage())] - + EnumChatFormatting.RESET, - /* 5 */ StatCollector.translateToLocal("GT5U.multiblock.problems") + ": " - + EnumChatFormatting.RED - + (getIdealStatus() - getRepairStatus()) - + EnumChatFormatting.RESET - + " " - + StatCollector.translateToLocal("GT5U.multiblock.efficiency") - + ": " - + EnumChatFormatting.YELLOW - + Float.toString(mEfficiency / 100.0F) - + EnumChatFormatting.RESET - + " %", - - /* 7 */ EnumChatFormatting.BOLD + StatCollector.translateToLocal("beamline.info") - + ": " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.focus") + ": " // Machine Focus: - + EnumChatFormatting.BLUE - + machineFocus - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.temperature") + ": " // Temperature: - + EnumChatFormatting.DARK_RED - + machineTemp - + EnumChatFormatting.RESET - + " K", // e.g. "137 K" - StatCollector.translateToLocal("beamline.coolusage") + ": " // Coolant Usage: - + EnumChatFormatting.AQUA - + 32_000 - + EnumChatFormatting.RESET - + " kL/s", // 32 kL/s - - /* 8 */ EnumChatFormatting.BOLD + StatCollector.translateToLocal("beamline.in_pre") - + ": " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.particle") + ": " // "Multiblock Beamline Input:" - + EnumChatFormatting.GOLD - + Particle.getParticleFromId(information.getParticleId()) - .getLocalisedName() // e.g. "Electron - // (e-)" - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.energy") + ": " // "Energy:" - + EnumChatFormatting.DARK_RED - + information.getEnergy() - + EnumChatFormatting.RESET - + " keV", // e.g. "10240 keV" - StatCollector.translateToLocal("beamline.focus") + ": " // "Focus:" - + EnumChatFormatting.BLUE - + information.getFocus() - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.amount") + ": " // "Amount:" - + EnumChatFormatting.LIGHT_PURPLE - + information.getRate(), - EnumChatFormatting.BOLD + StatCollector.translateToLocal("beamline.out_pre") // "Multiblock Beamline - // Output:" - + ": " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.particle") + ": " - + EnumChatFormatting.GOLD - + Particle.getParticleFromId(this.outputParticle) - .getLocalisedName() - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.energy") + ": " - + EnumChatFormatting.DARK_RED - + this.outputEnergy * 1000 - + EnumChatFormatting.RESET - + " eV", - StatCollector.translateToLocal( - "beamline.focus") + ": " + EnumChatFormatting.BLUE + this.outputFocus + " " + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.amount") + ": " - + EnumChatFormatting.LIGHT_PURPLE - + this.outputRate, }; - } - - @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - - this.mInputBeamline.clear(); - this.mOutputBeamline.clear(); - - this.mAntennaCasings.clear(); - - this.mEnergyHatches.clear(); - this.energyHatchTier = 0; - this.antennaeTier = 0; - - this.glassTier = 0; - - this.outputEnergy = 0; - this.outputRate = 0; - this.outputFocus = 0; - this.outputParticle = 0; - - if (!checkPiece(STRUCTURE_PIECE_ENTRANCE, 16, 3, 1)) return false; - if (!checkPiece(STRUCTURE_PIECE_BASE, 16, 3, 0)) return false; - - return this.mInputBeamline.size() == 1 && this.mOutputBeamline.size() == 1 - && this.mMaintenanceHatches.size() == 1 - && this.mEnergyHatches.size() == 4 - && this.glassTier >= MIN_GLASS_TIER; - } - - @Override - public int getMaxEfficiency(ItemStack aStack) { - return 10000; - } - - @Override - public int getDamageToComponent(ItemStack aStack) { - return 0; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack aStack) { - return false; - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/TargetChamber.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/TargetChamber.java deleted file mode 100644 index ad696f8fd3..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/TargetChamber.java +++ /dev/null @@ -1,481 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity; - -import static com.elisis.gtnhlanth.util.DescTextLocalization.BLUEPRINT_INFO; -import static com.elisis.gtnhlanth.util.DescTextLocalization.addDotText; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockAdder; -import static gregtech.api.enums.GT_HatchElement.Energy; -import static gregtech.api.enums.GT_HatchElement.InputBus; -import static gregtech.api.enums.GT_HatchElement.Maintenance; -import static gregtech.api.enums.GT_HatchElement.OutputBus; -import static gregtech.api.enums.GT_Values.VN; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_OIL_CRACKER_GLOW; -import static gregtech.api.enums.Textures.BlockIcons.casingTexturePages; -import static gregtech.api.util.GT_StructureUtility.buildHatchAdder; - -import java.util.ArrayList; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; - -import com.elisis.gtnhlanth.common.beamline.BeamInformation; -import com.elisis.gtnhlanth.common.beamline.Particle; -import com.elisis.gtnhlanth.common.hatch.TileBusInputFocus; -import com.elisis.gtnhlanth.common.hatch.TileHatchInputBeamline; -import com.elisis.gtnhlanth.common.register.LanthItemList; -import com.elisis.gtnhlanth.common.tileentity.recipe.beamline.BeamlineRecipeAdder2; -import com.elisis.gtnhlanth.common.tileentity.recipe.beamline.RecipeTC; -import com.elisis.gtnhlanth.util.DescTextLocalization; -import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; -import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; -import com.gtnewhorizon.structurelib.structure.IStructureDefinition; -import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; -import com.gtnewhorizon.structurelib.structure.StructureDefinition; - -import gregtech.api.GregTech_API; -import gregtech.api.enums.TickTime; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import gregtech.api.recipe.RecipeMap; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; - -public class TargetChamber extends GT_MetaTileEntity_EnhancedMultiBlockBase<TargetChamber> - implements ISurvivalConstructable { - - private static final IStructureDefinition<TargetChamber> STRUCTURE_DEFINITION; - - private ArrayList<TileHatchInputBeamline> mInputBeamline = new ArrayList<>(); - - private ArrayList<TileBusInputFocus> mInputFocus = new ArrayList<>(); - - private static final int CASING_INDEX_FRONT = GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings3, 10); // Grate - private static final int CASING_INDEX_CENTRE = GT_Utility.getCasingTextureIndex(GregTech_API.sBlockCasings5, 14); // Shielded - // Acc. - - private float inputEnergy; - private float inputRate; - private int inputParticle; - private float inputFocus; - - // spotless:off - static { - STRUCTURE_DEFINITION = StructureDefinition.<TargetChamber>builder() - .addShape( - "base", - new String[][] { - {"ggggg", "gjjjg", "gjbjg", "gjjjg", "ff~ff"}, - {"cslsc", "s-r-s", "srhrs", "s-r-s", "ccccc"}, - {"csssc", "s---s", "s---s", "s---s", "ccccc"}, - {"csssc", "s---s", "s---s", "s---s", "ccccc"}, - {"cstsc", "s-u-s", "suius", "s-u-s", "ccccc"}, - {"ggggg", "gjjjg", "gjojg", "gjjjg", "ggggg"}}) - - .addElement('g', ofBlock(GregTech_API.sBlockCasings3, 10)) //Grate casing - .addElement( - 'f', - buildHatchAdder(TargetChamber.class).atLeast(Maintenance, Energy) - .casingIndex(CASING_INDEX_FRONT).dot(2).buildAndChain(ofBlock(GregTech_API.sBlockCasings3, 10))) - - .addElement('j', ofBlockAdder(TargetChamber::addGlass, ItemRegistry.bw_glasses[0], 1)) - .addElement('b', buildHatchAdder(TargetChamber.class).hatchClass(TileHatchInputBeamline.class).casingIndex(CASING_INDEX_CENTRE).dot(5).adder(TargetChamber::addBeamLineInputHatch).build()) - .addElement('c', ofBlock(LanthItemList.SHIELDED_ACCELERATOR_CASING, 0)) - - .addElement('l', buildHatchAdder(TargetChamber.class).hatchClass(TileBusInputFocus.class).casingIndex(CASING_INDEX_CENTRE).dot(1).adder(TargetChamber::addFocusInputHatch).build()) - - .addElement('t', buildHatchAdder(TargetChamber.class).atLeast(InputBus).casingIndex(CASING_INDEX_CENTRE).dot(3).build()) - .addElement('s', ofBlock(LanthItemList.SHIELDED_ACCELERATOR_GLASS, 0)) - .addElement('r', ofBlock(LanthItemList.FOCUS_MANIPULATION_CASING, 0)) - .addElement('h', ofBlock(LanthItemList.FOCUS_HOLDER, 0)) - .addElement('u', ofBlock(LanthItemList.TARGET_RECEPTACLE_CASING, 0)) - .addElement('i', ofBlock(LanthItemList.TARGET_HOLDER, 0)) - .addElement('o', buildHatchAdder(TargetChamber.class).atLeast(OutputBus).casingIndex(CASING_INDEX_CENTRE).dot(4).build()) - - .build(); - } - //spotless:on - - private boolean addGlass(Block block, int meta) { - return block == ItemRegistry.bw_glasses[0]; - } - - private boolean addBeamLineInputHatch(IGregTechTileEntity te, int casingIndex) { - - if (te == null) return false; - - IMetaTileEntity mte = te.getMetaTileEntity(); - - if (mte == null) return false; - - if (mte instanceof TileHatchInputBeamline) { - return this.mInputBeamline.add((TileHatchInputBeamline) mte); - } - - return false; - } - - private boolean addFocusInputHatch(IGregTechTileEntity te, int casingIndex) { - - if (te == null) return false; - - IMetaTileEntity mte = te.getMetaTileEntity(); - - if (mte == null) return false; - - if (mte instanceof TileBusInputFocus) { - return this.mInputFocus.add((TileBusInputFocus) mte); - } - - return false; - } - - public TargetChamber(int id, String name, String nameRegional) { - super(id, name, nameRegional); - } - - public TargetChamber(String name) { - super(name); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity te) { - return new TargetChamber(this.mName); - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection side, ForgeDirection facing, - int colorIndex, boolean active, boolean redstoneLevel) { - // Placeholder - if (side == facing) { - if (active) return new ITexture[] { casingTexturePages[0][47], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_ACTIVE_GLOW) - .extFacing() - .glow() - .build() }; - return new ITexture[] { casingTexturePages[0][47], TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER) - .extFacing() - .build(), - TextureFactory.builder() - .addIcon(OVERLAY_FRONT_OIL_CRACKER_GLOW) - .extFacing() - .glow() - .build() }; - } - return new ITexture[] { casingTexturePages[0][47] }; - } - - @Override - protected GT_Multiblock_Tooltip_Builder createTooltip() { - final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Collision Chamber") - .addInfo("Controller block for the Target Chamber") - .addInfo("Hitting things with other things") - - .addInfo(BLUEPRINT_INFO) - .addInfo(DescTextLocalization.BEAMLINE_SCANNER_INFO) - .addSeparator() - .beginStructureBlock(5, 5, 6, true) - .addController("Front bottom") - .addCasingInfoExactly("Grate Machine Casing", 29, false) - .addCasingInfoExactly("Shielded Accelerator Casing", 28, false) - .addCasingInfoExactly("Borosilicate Glass", 16, true) - .addCasingInfoExactly(LanthItemList.SHIELDED_ACCELERATOR_GLASS.getLocalizedName(), 34, false) - .addCasingInfoExactly(LanthItemList.TARGET_RECEPTACLE_CASING.getLocalizedName(), 4, false) - .addCasingInfoExactly(LanthItemList.FOCUS_MANIPULATION_CASING.getLocalizedName(), 4, false) - .addCasingInfoExactly(LanthItemList.FOCUS_HOLDER.getLocalizedName(), 1, false) - .addCasingInfoExactly(LanthItemList.TARGET_HOLDER.getLocalizedName(), 1, false) - .addOtherStructurePart("Focus Input Bus", addDotText(1)) - .addMaintenanceHatch(addDotText(2)) - .addEnergyHatch(addDotText(2)) - .addInputBus(addDotText(3)) - .addOutputBus(addDotText(4)) - .addOtherStructurePart("Beamline Input Hatch", addDotText(5)) - .toolTipFinisher("GTNH: Lanthanides"); - return tt; - } - - @Override - public void construct(ItemStack stackSize, boolean hintsOnly) { - buildPiece("base", stackSize, hintsOnly, 2, 4, 0); - - } - - @Override - public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) { - if (mMachine) return -1; - return survivialBuildPiece("base", stackSize, 2, 4, 0, elementBudget, env, false, true); - } - - @Override - public IStructureDefinition<TargetChamber> getStructureDefinition() { - return STRUCTURE_DEFINITION; - } - - @Override - public RecipeMap<?> getRecipeMap() { - return BeamlineRecipeAdder2.instance.TargetChamberRecipes; - } - - @Override - public boolean checkRecipe(ItemStack itemStack) { - - inputEnergy = 0; - inputRate = 0; - inputParticle = 0; - inputFocus = 0; - - ArrayList<ItemStack> tItems = this.getStoredInputs(); - ItemStack tFocusItem = this.getFocusItemStack(); - - ItemStack tFocusItemZeroDamage = null; - - if (tFocusItem != null) { - - tFocusItemZeroDamage = tFocusItem.copy(); - tFocusItemZeroDamage.setItemDamage(0); - } - - ArrayList<ItemStack> tItemsWithFocusItem = new ArrayList<>(); - tItemsWithFocusItem.add(tFocusItemZeroDamage); - tItemsWithFocusItem.addAll(tItems); - - long tVoltage = this.getMaxInputVoltage(); - - ItemStack[] tItemsArray = tItems.toArray(new ItemStack[0]); - - ItemStack[] tItemsWithFocusItemArray = tItemsWithFocusItem.toArray(new ItemStack[0]); - - RecipeTC tRecipe = (RecipeTC) BeamlineRecipeAdder2.instance.TargetChamberRecipes.findRecipeQuery() - .items(tItemsWithFocusItemArray) - .voltage(tVoltage) - .filter((GT_Recipe recipe) -> { - - RecipeTC recipeTc = (RecipeTC) recipe; - - BeamInformation inputInfo = this.getInputInformation(); - - int particle = recipeTc.particleId; - - return (particle == inputInfo.getParticleId() - && !(inputInfo.getEnergy() < recipeTc.minEnergy || inputInfo.getEnergy() > recipeTc.maxEnergy)); - - }) - .find(); - - if (tRecipe == null || !tRecipe.isRecipeInputEqual(true, new FluidStack[] {}, tItemsWithFocusItemArray)) - return false; - - if (tRecipe.focusItem != null) { - if (tRecipe.focusItem.getItem() != tFocusItem.getItem()) return false; - } - - this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - - BeamInformation inputInfo = this.getInputInformation(); - - if (inputInfo == null) return false; - - inputEnergy = inputInfo.getEnergy(); - inputRate = inputInfo.getRate(); - inputParticle = inputInfo.getParticleId(); - inputFocus = inputInfo.getFocus(); - - if (inputEnergy < tRecipe.minEnergy || inputEnergy > tRecipe.maxEnergy) return false; - - if (inputFocus < tRecipe.minFocus) return false; - - if (inputParticle != tRecipe.particleId) return false; - - this.mMaxProgresstime = Math.max(Math.round((tRecipe.amount / inputRate * 5 * TickTime.SECOND)), 1); // 5 - // seconds - // per - // integer multiple - // over the rate. E.g., 100a, 10r - // would equal 50 seconds - if (this.mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1) return false; - - mEUt = (int) -tVoltage; - if (this.mEUt > 0) this.mEUt = (-this.mEUt); - - this.mOutputItems = tRecipe.mOutputs; - - if (tRecipe.focusItem != null) // Recipe actually uses the mask, can also assume machine mask item is nonnull - // due to above conditions - mInputFocus.get(0) - .depleteFocusDurability(1); - - this.updateSlots(); - - return true; - } - - private BeamInformation getInputInformation() { - - for (TileHatchInputBeamline in : this.mInputBeamline) { - - if (in.q == null) return new BeamInformation(0, 0, 0, 0); - // if (in.q == null) return new BeamInformation(10, 10, Particle.PHOTON.ordinal(), 90); // temporary - // for - // testing purposes - - return in.q.getContent(); - } - return null; - } - - private ItemStack getFocusItemStack() { - - for (TileBusInputFocus hatch : this.mInputFocus) { - return hatch.getContentUsageSlots() - .get(0); - } - - return null; - - } - - @Override - public boolean checkMachine(IGregTechTileEntity arg0, ItemStack arg1) { - - mInputBeamline.clear(); - mInputFocus.clear(); - - if (!checkPiece("base", 2, 4, 0)) return false; - - return this.mInputBeamline.size() == 1 && this.mMaintenanceHatches.size() == 1 - && this.mInputBusses.size() == 1 - && this.mOutputBusses.size() == 1 - && this.mInputFocus.size() == 1; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack arg0) { - return false; - } - - @Override - public int getDamageToComponent(ItemStack arg0) { - return 0; - } - - @Override - public int getMaxEfficiency(ItemStack arg0) { - return 10000; - } - - @Override - public boolean isCorrectMachinePart(ItemStack arg0) { - return true; - } - - @Override - public String[] getStructureDescription(ItemStack arg0) { - return DescTextLocalization.addText("TargetChamber.hint", 13); - } - - @Override - public String[] getInfoData() { - - long storedEnergy = 0; - long maxEnergy = 0; - for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) { - if (tHatch.isValid()) { - storedEnergy += tHatch.getBaseMetaTileEntity() - .getStoredEU(); - maxEnergy += tHatch.getBaseMetaTileEntity() - .getEUCapacity(); - } - } - - BeamInformation information = this.getInputInformation(); - - return new String[] { - /* 1 */ StatCollector.translateToLocal("GT5U.multiblock.Progress") + ": " - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(mProgresstime / 20) - + EnumChatFormatting.RESET - + " s / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(mMaxProgresstime / 20) - + EnumChatFormatting.RESET - + " s", - /* 2 */ StatCollector.translateToLocal("GT5U.multiblock.energy") + ": " - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(storedEnergy) - + EnumChatFormatting.RESET - + " EU / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(maxEnergy) - + EnumChatFormatting.RESET - + " EU", - /* 3 */ StatCollector.translateToLocal("GT5U.multiblock.usage") + ": " - + EnumChatFormatting.RED - + GT_Utility.formatNumbers(getActualEnergyUsage()) - + EnumChatFormatting.RESET - + " EU/t", - /* 4 */ StatCollector.translateToLocal("GT5U.multiblock.mei") + ": " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(getMaxInputVoltage()) - + EnumChatFormatting.RESET - + " EU/t(*2A) " - + StatCollector.translateToLocal("GT5U.machines.tier") - + ": " - + EnumChatFormatting.YELLOW - + VN[GT_Utility.getTier(getMaxInputVoltage())] - + EnumChatFormatting.RESET, - /* 5 */ StatCollector.translateToLocal("GT5U.multiblock.problems") + ": " - + EnumChatFormatting.RED - + (getIdealStatus() - getRepairStatus()) - + EnumChatFormatting.RESET - + " " - + StatCollector.translateToLocal("GT5U.multiblock.efficiency") - + ": " - + EnumChatFormatting.YELLOW - + Float.toString(mEfficiency / 100.0F) - + EnumChatFormatting.RESET - + " %", - - /* 6 */ EnumChatFormatting.BOLD + StatCollector.translateToLocal("beamline.in_pre") - + ": " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.particle") + ": " // "Multiblock Beamline Input:" - + EnumChatFormatting.GOLD - + Particle.getParticleFromId(information.getParticleId()) - .getLocalisedName() // e.g. "Electron - // (e-)" - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.energy") + ": " // "Energy:" - + EnumChatFormatting.DARK_RED - + information.getEnergy() * 1000 // In line with the synchrotron's output - + EnumChatFormatting.RESET - + " eV", // e.g. "10240 eV" - StatCollector.translateToLocal("beamline.focus") + ": " // "Focus:" - + EnumChatFormatting.BLUE - + information.getFocus() - + " " - + EnumChatFormatting.RESET, - StatCollector.translateToLocal("beamline.amount") + ": " // "Amount:" - + EnumChatFormatting.LIGHT_PURPLE - + information.getRate(), }; - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/BeamlineRecipeAdder2.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/BeamlineRecipeAdder2.java deleted file mode 100644 index 59c14940d6..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/BeamlineRecipeAdder2.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity.recipe.beamline; - -import java.util.Arrays; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; - -import com.elisis.gtnhlanth.common.beamline.Particle; - -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.recipe.RecipeMap; -import gregtech.api.recipe.RecipeMapBackend; -import gregtech.api.recipe.RecipeMapBuilder; -import gregtech.api.util.GT_Utility; - -public class BeamlineRecipeAdder2 { - - public static final BeamlineRecipeAdder2 instance = new BeamlineRecipeAdder2(); - - public final RecipeMap<RecipeMapBackend> SourceChamberRecipes = RecipeMapBuilder.of("gtnhlanth.recipe.sc") - .minInputs(0, 0) - .maxIO(1, 2, 0, 0) - .amperage(1) - .frontend(SourceChamberFrontend::new) - .progressBar(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_1) - .neiSpecialInfoFormatter((recipeInfo) -> { - - RecipeSC recipe = (RecipeSC) recipeInfo.recipe; - - float focus = recipe.focus; - float maxEnergy = recipe.maxEnergy; - - int amount = recipe.rate; - - Particle particle = Particle.getParticleFromId(recipe.particleId); - - return Arrays.asList( - - // StatCollector.translateToLocal("beamline.particle") + ": " + particle.getLocalisedName(), - - StatCollector.translateToLocal("beamline.energy") + ": <=" - + GT_Utility.formatNumbers(Math.min(maxEnergy, particle.maxSourceEnergy())) - + " keV", - - StatCollector.translateToLocal("beamline.focus") + ": " + GT_Utility.formatNumbers(focus), - - StatCollector.translateToLocal("beamline.rate") + ": " + GT_Utility.formatNumbers(amount) - - ); - }) - // .slotOverlays(null) - - .build(); - - public final RecipeMap<RecipeMapBackend> TargetChamberRecipes = RecipeMapBuilder.of("gtnhlanth.recipe.tc") - .minInputs(0, 0) - .maxIO(3, 4, 0, 0) - .frontend(TargetChamberFrontend::new) - .neiSpecialInfoFormatter(((recipeInfo) -> { - - RecipeTC recipe = (RecipeTC) recipeInfo.recipe; - - float minEnergy = recipe.minEnergy; - float maxEnergy = recipe.maxEnergy; - - float minFocus = recipe.minFocus; - - float amount = recipe.amount; - - Particle particle = Particle.getParticleFromId(recipe.particleId); - - return Arrays.asList( - - // StatCollector.translateToLocal("beamline.particle") + ": " + particle.getLocalisedName(), - - StatCollector.translateToLocal("beamline.energy") + ": " - + GT_Utility.formatNumbers(minEnergy * 1000) - + "-" - + GT_Utility.formatNumbers(maxEnergy * 1000) - + " eV", // Note the eV unit - - StatCollector.translateToLocal("beamline.focus") + ": >=" + GT_Utility.formatNumbers(minFocus), - - StatCollector.translateToLocal("beamline.amount") + ": " + GT_Utility.formatNumbers(amount) - - ); - })) - // .slotOverlays(null) - .progressBar(GT_UITextures.PROGRESSBAR_ASSEMBLY_LINE_1) - .progressBarPos(108, 22) - .neiTransferRect(100, 22, 28, 18) - .build(); - - /*** - * - * @param itemInputs - duh - * @param itemOutputs - duh - * @param particleId - The ID of the {@link com.elisis.gtnhlanth.common.beamline.Particle} generated by the recipe. - * It is recommended to use Particle#ordinal() - * @param rate - The rate/amount of particles generated - * @param maxEnergy - The maximum energy particles generated by this recipe can possess (keV). Set this value >= - * max particle energy to limit it to the latter - * @param focus - Focus of the particle generated - * @param energyRatio - Set high for little-to-no EUt energy scaling, low for the opposite - * @param minEUt - Minimum EUt required for the recipe. ! May not output if input energy is equal to minimum ! - */ - public boolean addSourceChamberRecipe(ItemStack[] itemInputs, ItemStack[] itemOutputs, int particleId, int rate, - float maxEnergy, float focus, float energyRatio, int minEUt) { - - return (SourceChamberRecipes.addRecipe( - new RecipeSC( - false, - itemInputs, - itemOutputs, - null, - new int[] {}, - null, - null, - 20, - minEUt, - particleId, - rate, - maxEnergy, - focus, - energyRatio)) - != null); - } - - /*** - * - * @param itemInput - The item to be used as a target. Should have durability - * @param itemOutput - duh - * @param particleId - The ID of the {@link com.elisis.gtnhlanth.common.beamline.Particle} used by the recipe. It - * is recommended to use Particle#ordinal() - * @param amount - The total amount of particles required for the recipe to come to completion. The duration of - * the recipe will be determined by this and the input particle rate. - * @param minEnergy - The minimum energy amount required by this recipe in keV (inclusive) - * @param maxEnergy - The maximum energy amount allowed by this recipe in keV (inclusive) - * @param minFocus - Minimum focus allowed by the recipe - * @param energyRatio - Set high for little-to-no EUt energy scaling, low for the opposite - * @param minEUt - Minimum EUt required for the recipe to start - */ - - public boolean addTargetChamberRecipe(ItemStack itemInput, ItemStack itemOutput, ItemStack itemFocus, - int particleId, int amount, float minEnergy, float maxEnergy, float minFocus, float energyRatio, int minEUt) { - - return (TargetChamberRecipes.addRecipe( - new RecipeTC( - false, - itemInput, - itemOutput, - itemFocus, - particleId, - amount, - minEnergy, - maxEnergy, - minFocus, - energyRatio, - minEUt), - false, - false, - false) != null); - - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/BeamlineRecipeLoader.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/BeamlineRecipeLoader.java deleted file mode 100644 index 2c5eef4ea0..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/BeamlineRecipeLoader.java +++ /dev/null @@ -1,194 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity.recipe.beamline; - -import java.util.Arrays; -import java.util.HashMap; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; - -import com.elisis.gtnhlanth.common.beamline.Particle; -import com.elisis.gtnhlanth.common.item.MaskList; -import com.elisis.gtnhlanth.common.register.LanthItemList; -import com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool; - -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; -import gtPlusPlus.core.material.ELEMENT; - -public class BeamlineRecipeLoader { - - public static final HashMap<String, Fluid> coolantMap = new HashMap<>(); - - private static final ItemList[] VIABLE_WAFERS = new ItemList[] { ItemList.Circuit_Silicon_Wafer, - ItemList.Circuit_Silicon_Wafer2, ItemList.Circuit_Silicon_Wafer3, ItemList.Circuit_Silicon_Wafer4, - ItemList.Circuit_Silicon_Wafer5, ItemList.Circuit_Silicon_Wafer6, ItemList.Circuit_Silicon_Wafer7 }; - - public static void load() { - - /* - * Coolant list - */ - - coolantMap.put( - Materials.LiquidNitrogen.getGas(1L) - .getFluid() - .getName(), - Materials.Nitrogen.getGas(1L) - .getFluid()); - coolantMap.put( - Materials.LiquidOxygen.getGas(1L) - .getFluid() - .getName(), - Materials.Oxygen.getGas(1L) - .getFluid()); - coolantMap.put("ic2coolant", FluidRegistry.getFluid("ic2hotcoolant")); - coolantMap.put( - Materials.SuperCoolant.getFluid(1L) - .getFluid() - .getName(), - Materials.Water.getFluid(1L) - .getFluid()); - - /* - * ELECTRON - */ - BeamlineRecipeAdder2.instance.addSourceChamberRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Tungsten, 1) }, - null, - Particle.ELECTRON.ordinal(), - 20, - 1000, - 98, - 0.1f, - 7680); - - BeamlineRecipeAdder2.instance.addSourceChamberRecipe( - new ItemStack[] { WerkstoffMaterialPool.LanthanumHexaboride.get(OrePrefixes.stickLong, 1) }, - null, - Particle.ELECTRON.ordinal(), - 60, - 5000, - 99, - 0.3f, - 7680); - - /* - * NEUTRON - */ - BeamlineRecipeAdder2.instance.addSourceChamberRecipe( - new ItemStack[] { ELEMENT.getInstance().CALIFORNIUM.getDust(1) }, - null, - Particle.NEUTRON.ordinal(), - 10, - 9000, - 95, - 999, - 1920); - - /* - * ALPHA - */ - BeamlineRecipeAdder2.instance.addSourceChamberRecipe( - new ItemStack[] { Materials.Uranium.getDust(1) }, - new ItemStack[] { WerkstoffMaterialPool.Thorium234.get(OrePrefixes.dust, 1) }, - Particle.ALPHA.ordinal(), - 1, - 4270, - 90, - 999, - 480); - - /* - * TARGET CHAMBER - */ - - for (MaskList mask : MaskList.values()) { - - if (mask.getProducedItem() == null) // Blank or error - continue; - - int index = 0; - for (ItemList wafer : VIABLE_WAFERS) { - - index++; - - if (!Arrays.asList(mask.getForbiddenWafers()) - .contains(wafer)) { - - BeamlineRecipeAdder2.instance.addTargetChamberRecipe( - wafer.get(1), - GT_Utility.copyAmountUnsafe((int) Math.pow(2, index + 2), mask.getProducedItem()), - new ItemStack(LanthItemList.maskMap.get(mask), 0), - 1, - mask.getBaselineAmount() * (int) Math.pow(Math.sqrt(3), index - 1), // 3x recipe amount increase - // per 2 increases in wafer - // tier. This greatly - // incentivises the use of - // higher tier boule wafer - // recipes - mask.getMinEnergy(), - mask.getMaxEnergy(), - mask.getMinFocus(), - 1, - 1920); - - } - - } - - /* - * if (!Arrays.asList(MaskList.CPU.getForbiddenWafers()).contains(wafer)) { - * BeamlineRecipeAdder.instance.addTargetChamberRecipe( wafer.get(1), GT_Utility.copyAmountUnsafe((int) - * Math.pow(2, index + 2), ItemList.Circuit_Wafer_CPU.get(1)), //Varies new - * ItemStack(LanthItemList.maskMap.get(MaskList.CPU), 0), // Varies 0, 10 * (int) Math.pow(2, index - 1), // - * Varies 1, //Varies 10000000, //Varies 50, //Varies 1, 1920 ); } /* PPIC - */ - - /* - * if (!Arrays.asList(MaskList.PPIC.getForbiddenWafers()).contains(wafer)) { - * GT_Log.out.print("Adding recipe for PPIC with " + wafer.get(1).getUnlocalizedName() + " amount: " + 40 * - * (int) Math.pow(2, index - 1)); BeamlineRecipeAdder.instance.addTargetChamberRecipe( wafer.get(1), - * ItemList.Circuit_Wafer_PPIC.get((int) Math.pow(2, index + 2)), //Varies new - * ItemStack(LanthItemList.maskMap.get(MaskList.PPIC), 0), // Varies 0, 40 * (int) Math.pow(2, index - 1), - * // Varies 1, //Varies 10000000, //Varies 50, //Varies 1, 1920 ); } - */ - - } - /* - * BeamlineRecipeAdder2.instance.addTargetChamberRecipe( new ItemStack(Items.coal, 1), new - * ItemStack(Items.diamond, 1), null, 1, 20, 100, 1000, 60, 1, 1920); - * BeamlineRecipeAdder2.instance.addTargetChamberRecipe( new ItemStack(Items.coal, 1), new - * ItemStack(Items.cooked_chicken, 1), null, 1, 20, 1, 10, 60, 1, 1920); - */ - - BeamlineRecipeAdder2.instance.addTargetChamberRecipe( - new ItemStack(Items.chicken, 1), - new ItemStack(Items.cooked_chicken), - null, - Particle.PHOTON.ordinal(), - 400, - 5, - 20, - 80, - 1, - 7864320); - - BeamlineRecipeAdder2.instance.addTargetChamberRecipe( - new ItemStack(Items.chicken, 1), - new ItemStack(Items.egg), - null, - Particle.PHOTON.ordinal(), - 400, - 21, - 600, - 80, - 1, - 7864320); - - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/RecipeSC.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/RecipeSC.java deleted file mode 100644 index 0d65421e67..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/RecipeSC.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity.recipe.beamline; - -import java.util.ArrayList; -import java.util.Arrays; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -import com.elisis.gtnhlanth.common.register.LanthItemList; - -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; - -public class RecipeSC extends GT_Recipe { - - public int particleId; - public int rate; - public float maxEnergy; - public float focus; - public float energyRatio; - - public RecipeSC(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, - FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int particleId, int rate, - float maxEnergy, float focus, float energyRatio) { - - super(aOptimize, aInputs, aOutputs, null, aChances, null, null, aDuration, aEUt, 0); - - this.particleId = particleId; - this.rate = rate; - this.maxEnergy = maxEnergy; - this.focus = focus; - this.energyRatio = energyRatio; - } - - @Override - public ItemStack getRepresentativeOutput(int aIndex) { - - ArrayList<ItemStack> mOutputsWithParticle = new ArrayList<>(); - - ItemStack particleStack = new ItemStack(LanthItemList.PARTICLE_ITEM); - - Items.ender_pearl.setDamage(particleStack, this.particleId); - - mOutputsWithParticle.addAll(Arrays.asList(mOutputs)); - mOutputsWithParticle.add(particleStack); - - ItemStack[] mOutputsWithParticleArray = mOutputsWithParticle.toArray(new ItemStack[0]); - - if (aIndex < 0 || aIndex >= mOutputsWithParticleArray.length) return null; - return GT_Utility.copyOrNull(mOutputsWithParticleArray[aIndex]); - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/RecipeTC.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/RecipeTC.java deleted file mode 100644 index 49a5b64e1d..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/RecipeTC.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity.recipe.beamline; - -import java.util.ArrayList; -import java.util.Arrays; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import com.elisis.gtnhlanth.common.register.LanthItemList; - -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; - -public class RecipeTC extends GT_Recipe { - - public int particleId; - public int amount; - - public float minEnergy; - public float maxEnergy; - - public float minFocus; - public float energyRatio; - - public ItemStack focusItem; - - public RecipeTC(boolean aOptimize, ItemStack aInput, ItemStack aOutput, ItemStack aFocusItem, int particleId, - int amount, float minEnergy, float maxEnergy, float minFocus, float energyRatio, int aEUt) { - - super( - aOptimize, - new ItemStack[] { aFocusItem, aInput }, - new ItemStack[] { aOutput }, - null, - null, - null, - null, - 1, - aEUt, - 0); - - this.particleId = particleId; - this.amount = amount; - - this.minEnergy = minEnergy; - this.maxEnergy = maxEnergy; - - this.minFocus = minFocus; - - this.energyRatio = energyRatio; - - this.focusItem = aFocusItem; - } - - @Override - public ItemStack getRepresentativeInput(int aIndex) { - - ArrayList<ItemStack> mInputsWithParticle = new ArrayList<>(); - - ItemStack particleStack = new ItemStack(LanthItemList.PARTICLE_ITEM); - Items.ender_pearl.setDamage(particleStack, this.particleId); - - mInputsWithParticle.add(particleStack); - mInputsWithParticle.addAll(Arrays.asList(mInputs)); - - ItemStack[] mInputsWithParticleArray = mInputsWithParticle.toArray(new ItemStack[0]); - - if (aIndex < 0 || aIndex >= mInputsWithParticleArray.length) return null; - return GT_Utility.copyOrNull(mInputsWithParticleArray[aIndex]); - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/SourceChamberFrontend.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/SourceChamberFrontend.java deleted file mode 100644 index 24282e54c6..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/SourceChamberFrontend.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity.recipe.beamline; - -import gregtech.api.recipe.BasicUIPropertiesBuilder; -import gregtech.api.recipe.NEIRecipePropertiesBuilder; -import gregtech.api.recipe.RecipeMapFrontend; -import gregtech.nei.RecipeDisplayInfo; - -public class SourceChamberFrontend extends RecipeMapFrontend { - - public SourceChamberFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, - NEIRecipePropertiesBuilder neiPropertiesBuilder) { - super(uiPropertiesBuilder, neiPropertiesBuilder); - } - - @Override - public void drawDescription(RecipeDisplayInfo recipeInfo) { - drawEnergyInfo(recipeInfo); - // drawDurationInfo(recipeInfo); Unnecessary and misleading - drawSpecialInfo(recipeInfo); - drawMetadataInfo(recipeInfo); - drawRecipeOwnerInfo(recipeInfo); - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/TargetChamberFrontend.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/TargetChamberFrontend.java deleted file mode 100644 index 58b73fb58d..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/recipe/beamline/TargetChamberFrontend.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.elisis.gtnhlanth.common.tileentity.recipe.beamline; - -import static gregtech.api.util.GT_Utility.trans; - -import java.util.List; - -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; - -import com.elisis.gtnhlanth.util.Util; -import com.gtnewhorizons.modularui.api.math.Pos2d; - -import gregtech.api.recipe.BasicUIPropertiesBuilder; -import gregtech.api.recipe.NEIRecipePropertiesBuilder; -import gregtech.api.recipe.RecipeMapFrontend; -import gregtech.api.util.GT_OverclockCalculator; -import gregtech.api.util.GT_Utility; -import gregtech.common.gui.modularui.UIHelper; -import gregtech.nei.GT_NEI_DefaultHandler; -import gregtech.nei.RecipeDisplayInfo; - -public class TargetChamberFrontend extends RecipeMapFrontend { - - public TargetChamberFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder, - NEIRecipePropertiesBuilder neiPropertiesBuilder) { - super(uiPropertiesBuilder, neiPropertiesBuilder); - } - - public void drawDescription(RecipeDisplayInfo recipeInfo) { - drawEnergyInfo(recipeInfo); - // drawDurationInfo(recipeInfo); - drawSpecialInfo(recipeInfo); - drawMetadataInfo(recipeInfo); - drawRecipeOwnerInfo(recipeInfo); - } - - @Override - protected void drawNEIOverlayForInput(GT_NEI_DefaultHandler.FixedPositionedStack stack) { - if (stack.isNotConsumed()) { // The stack actually takes damage, but is technically still not considered to be - // consumed by the code - drawNEIOverlayText("PC", stack); - } - } - - @Override - protected List<String> handleNEIItemInputTooltip(List<String> currentTip, - GT_NEI_DefaultHandler.FixedPositionedStack pStack) { - if (pStack.isNotConsumed()) { // See above - currentTip.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("gtnhlanth.tt.pc")); // Partially - // consumed: - // Takes damage - // in the - // process - } - return currentTip; - } - - @Override - public void drawEnergyInfo(RecipeDisplayInfo recipeInfo) { - if (recipeInfo.calculator.getConsumption() <= 0) return; - - // recipeInfo.drawText(trans("152", "Total: ") + getTotalPowerString(recipeInfo.calculator)); - - recipeInfo.drawText(trans("153", "Usage: ") + getEUtDisplay(recipeInfo.calculator)); - recipeInfo.drawText(trans("154", "Voltage: ") + getVoltageString(recipeInfo.calculator)); - recipeInfo.drawText(trans("155", "Amperage: ") + getAmperageString(recipeInfo.calculator)); - - } - - @Override - public List<Pos2d> getItemOutputPositions(int itemOutputCount) { - return UIHelper.getGridPositions(itemOutputCount, 128, 24, 1, 3); // Make output items display vertically, not - // in a square - } - - @Override - public List<Pos2d> getItemInputPositions(int itemInputCount) { - - /* - * Pos2d posParticle = new Pos2d(8, 28); // Particle item ArrayList<Pos2d> posList = new ArrayList<>(); - * posList.add(posParticle); posList.addAll(UIHelper.getGridPositions(itemInputCount - 1, 36, 28, 3)); - */ - - List<Pos2d> posList = Util.getGridPositions(itemInputCount, 8, 20, 3, 1, 20); - return posList; - } - - private String getEUtDisplay(GT_OverclockCalculator calculator) { - return getEUtWithoutTier(calculator); - } - - private String getEUtWithoutTier(GT_OverclockCalculator calculator) { - return GT_Utility.formatNumbers(calculator.getConsumption()) + " EU/t"; - } - - private String getVoltageString(GT_OverclockCalculator calculator) { - long voltage = computeVoltageForEURate(calculator.getConsumption()); - return GT_Utility.formatNumbers(voltage) + " EU/t" + GT_Utility.getTierNameWithParentheses(voltage); - } - - private long computeVoltageForEURate(long euPerTick) { - return euPerTick; - } - - private String getAmperageString(GT_OverclockCalculator calculator) { - return GT_Utility.formatNumbers(1); - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/loader/BotRecipes.java b/src/main/java/com/elisis/gtnhlanth/loader/BotRecipes.java deleted file mode 100644 index 0b4f5e4472..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/loader/BotRecipes.java +++ /dev/null @@ -1,263 +0,0 @@ -package com.elisis.gtnhlanth.loader; - -import static com.elisis.gtnhlanth.common.register.BotWerkstoffMaterialPool.*; -import static gregtech.api.enums.OrePrefixes.*; -import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; -import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; -import static gregtech.api.recipe.RecipeMaps.chemicalReactorRecipes; -import static gregtech.api.recipe.RecipeMaps.crackingRecipes; -import static gregtech.api.recipe.RecipeMaps.distilleryRecipes; -import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; -import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; -import static gregtech.api.util.GT_RecipeBuilder.MINUTES; -import static gregtech.api.util.GT_RecipeBuilder.SECONDS; -import static gregtech.api.util.GT_RecipeBuilder.TICKS; -import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; -import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; - -import java.util.HashSet; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -import com.elisis.gtnhlanth.common.register.BotWerkstoffMaterialPool; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; - -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.Materials; -import gregtech.api.enums.TierEU; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; -import ic2.core.Ic2Items; - -/* - * Originally authored by botn365 under the MIT License. See BotdustriesLICENSE - */ - -public class BotRecipes { - - public static void addGTRecipe() { - ItemStack C1 = GT_Utility.getIntegratedCircuit(1); - ItemStack C2 = GT_Utility.getIntegratedCircuit(2); - ItemStack C24 = GT_Utility.getIntegratedCircuit(24); - - // CaCO3 + 2HCl = H2O + CO2 + CaCl2 - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Calcite.getDust(5), Materials.Empty.getCells(1)) - .itemOutputs(Materials.CarbonDioxide.getCells(1), WerkstoffLoader.CalciumChloride.get(dust, 3)) - .fluidInputs(Materials.HydrochloricAcid.getFluid(2000)) - .fluidOutputs(Materials.Water.getFluid(1000)) - .duration(4 * SECONDS) - .eut(TierEU.RECIPE_MV) - .addTo(UniversalChemical); - - // tungsten chain - FluidStack sodiumTungsten = SodiumTungstate.getFluidOrGas(1000); - ItemStack scheelite = Materials.Scheelite.getDust(6); - - // Li2WO4 + 2Na = Na2WO4 + 2Li - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Tungstate.getDust(7), Materials.Sodium.getDust(2)) - .itemOutputs(Materials.Lithium.getDust(2)) - .fluidInputs(Materials.Water.getFluid(4000)) - .fluidOutputs(sodiumTungsten) - .duration(5 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(autoclaveRecipes); - - // MnWO4 + 2Na = Na2WO4 + Mn - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffLoader.Huebnerit.get(dust, 6), Materials.Sodium.getDust(2)) - .itemOutputs(Materials.Manganese.getDust(1)) - .fluidInputs(Materials.Water.getFluid(4000)) - .fluidOutputs(sodiumTungsten) - .duration(5 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(autoclaveRecipes); - - // FeWO4 + 2Na = Na2WO4 + Fe - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffLoader.Ferberite.get(dust, 6), Materials.Sodium.getDust(2)) - .itemOutputs(Materials.Iron.getDust(1)) - .fluidInputs(Materials.Water.getFluid(4000)) - .fluidOutputs(sodiumTungsten) - .duration(5 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(autoclaveRecipes); - - // CaCl2 + Na2WO4 = 2NaCl + CaWO4 - ItemStack Ca2Cl = WerkstoffLoader.CalciumChloride.get(dust, 3); - GT_Values.RA.stdBuilder() - .itemInputs(Ca2Cl) - .itemOutputs(scheelite, Materials.Salt.getDust(4)) - .fluidInputs(sodiumTungsten) - .duration(5 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - ItemStack H2WO4 = TungsticAcid.get(dust, 7); - // CaWO4 + 2HCl = H2WO4 + CaCl2 - GT_Values.RA.stdBuilder() - .itemInputs(scheelite) - .itemOutputs(H2WO4, Ca2Cl) - .fluidInputs(Materials.HydrochloricAcid.getFluid(2000)) - .duration(2 * SECONDS + 10 * TICKS) - .eut(TierEU.RECIPE_EV) - .addTo(UniversalChemical); - - ItemStack WO3 = TungstenTrioxide.get(dust, 4); - // H2WO4 = WO3 + H2O - GT_Values.RA.stdBuilder() - .itemInputs(H2WO4) - .itemOutputs(WO3) - .duration(10 * SECONDS) - .eut(TierEU.RECIPE_HV) - .metadata(COIL_HEAT, 1200) - .addTo(blastFurnaceRecipes); - - // WO3 + 6H = W + 3H2O - GT_Values.RA.stdBuilder() - .itemInputs(WO3, C2) - .itemOutputs(Materials.Tungsten.getDust(1)) - .fluidInputs(Materials.Hydrogen.getGas(6000)) - .fluidOutputs(GT_ModHandler.getSteam(3000)) - .duration(5 * SECONDS) - .eut(TierEU.RECIPE_HV) - .metadata(COIL_HEAT, 1000) - .addTo(blastFurnaceRecipes); - - WO3.stackSize = 8; - // 2WO3 + 3C = 2W + 3CO2 - GT_Values.RA.stdBuilder() - .itemInputs(WO3, Materials.Carbon.getDust(3)) - .itemOutputs(GT_OreDictUnificator.get(ingotHot, Materials.Tungsten, 2L)) - .fluidOutputs(Materials.CarbonDioxide.getGas(3000)) - .duration(6 * MINUTES + 40 * SECONDS) - .eut(TierEU.RECIPE_EV) - .metadata(COIL_HEAT, 3000) - .addTo(blastFurnaceRecipes); - - // rocket fuels - // LMP103S - // 2Cl + CO = COCl2 - - GT_Values.RA.stdBuilder() - .itemInputs(Materials.CarbonMonoxide.getCells(1), GT_Utility.getIntegratedCircuit(12)) - .itemOutputs(Phosgene.get(cell, 1)) - .fluidInputs(Materials.Chlorine.getGas(2000)) - .duration(2 * SECONDS + 10 * TICKS) - .eut(TierEU.RECIPE_HV) - .addTo(chemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(12)) - .itemOutputs(Phosgene.get(cell, 1), Materials.Empty.getCells(1)) - .fluidInputs(Materials.CarbonMonoxide.getGas(1000)) - .duration(2 * SECONDS + 10 * TICKS) - .eut(TierEU.RECIPE_HV) - .addTo(chemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(Materials.CarbonMonoxide.getCells(1), Materials.Chlorine.getCells(2)) - .itemOutputs(Phosgene.get(cell, 1), Materials.Empty.getCells(2)) - .duration(2 * SECONDS + 10 * TICKS) - .eut(TierEU.RECIPE_HV) - .addTo(chemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(2)) - .itemOutputs(Materials.Empty.getCells(2)) - .fluidInputs(Materials.CarbonMonoxide.getGas(1000)) - .fluidOutputs(BotWerkstoffMaterialPool.Phosgene.getFluidOrGas(1000)) - .duration(2 * SECONDS + 10 * TICKS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - // H3PO4 = P + H2O - GT_Values.RA.stdBuilder() - .itemInputs(C2) - .itemOutputs(Materials.Phosphorus.getDust(1)) - .fluidInputs(Materials.PhosphoricAcid.getFluid(1000)) - .fluidOutputs(Materials.Water.getFluid(500)) - .eut(TierEU.RECIPE_HV) - .duration(1 * SECONDS) - .addTo(distilleryRecipes); - - ItemStack cells = Ic2Items.cell.copy(); - cells.stackSize = 1; - // NH4Cl = HCl + NH3 - GT_Values.RA.stdBuilder() - .itemInputs(cells) - .itemOutputs(Materials.Ammonia.getCells(1)) - .fluidInputs(WerkstoffLoader.AmmoniumChloride.getFluidOrGas(1000)) - .fluidOutputs(Materials.HydrochloricAcid.getFluid(1000)) - .eut(TierEU.RECIPE_MV) - .duration(2 * SECONDS + 10 * TICKS) - .addTo(distilleryRecipes); - - // N2H4O3 + NaOH = NaNO3 + NH3 + H2O - GT_Values.RA.stdBuilder() - .itemInputs(AmmoniumNitrate.get(dust, 9), Materials.SodiumHydroxide.getDust(3)) - .itemOutputs(WerkstoffLoader.SodiumNitrate.get(dust, 5)) - .fluidOutputs(Materials.Ammonia.getGas(1000)) - .duration(5 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(chemicalReactorRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(AmmoniumNitrate.get(dust, 9), Materials.SodiumHydroxide.getDust(3), C2) - .itemOutputs(WerkstoffLoader.SodiumNitrate.get(dust, 5)) - .fluidOutputs(Materials.Ammonia.getGas(1000), Materials.Water.getFluid(1000)) - .duration(5 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(multiblockChemicalReactorRecipes); - - // N2H4O3 + NaOH + H =H2SO4= NH3 + HNO3 + Na + H2O - GT_Values.RA.stdBuilder() - .itemInputs(C24, AmmoniumNitrate.get(dust, 9), Materials.SodiumHydroxide.getDust(3)) - .itemOutputs(Materials.Sodium.getDust(1)) - .fluidInputs(Materials.SulfuricAcid.getFluid(1000), Materials.Hydrogen.getGas(1000)) - .fluidOutputs( - Materials.Ammonia.getGas(1000), - Materials.NitricAcid.getFluid(1000), - Materials.DilutedSulfuricAcid.getFluid(1000)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(multiblockChemicalReactorRecipes); - - // 2HNO3 + C3H8 = 2CH3NO2 + 2H2O + C - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(2)) - .fluidInputs(Materials.Propane.getGas(1000), Materials.NitricAcid.getFluid(2000)) - .fluidOutputs(Nitromethane.getFluidOrGas(2000)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(crackingRecipes); - } - - public static void removeRecipes() { - BotRecipes.removeTungstenElectro(); - } - - public static void removeTungstenElectro() { - HashSet<GT_Recipe> toDel = new HashSet<>(); - ItemStack[] toRemove = { Materials.Scheelite.getDust(1), Materials.Tungstate.getDust(1), - WerkstoffLoader.Ferberite.get(dust, 1), WerkstoffLoader.Huebnerit.get(dust, 1) }; - for (GT_Recipe tRecipe : electrolyzerRecipes.getAllRecipes()) { - if (tRecipe.mFakeRecipe) continue; - for (int i = 0; i < tRecipe.mInputs.length; i++) { - ItemStack tItem = tRecipe.mInputs[i]; - if (item == null || !GT_Utility.isStackValid(tItem)) continue; - for (ItemStack tStack : toRemove) { - if (GT_Utility.areStacksEqual(tItem, tStack)) { - toDel.add(tRecipe); - continue; - } - } - } - } - electrolyzerRecipes.getBackend() - .removeRecipes(toDel); - electrolyzerRecipes.getBackend() - .reInit(); - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/loader/MetaTileEntity_Loader.java b/src/main/java/com/elisis/gtnhlanth/loader/MetaTileEntity_Loader.java deleted file mode 100644 index e24034c663..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/loader/MetaTileEntity_Loader.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.elisis.gtnhlanth.loader; - -public class MetaTileEntity_Loader { -} diff --git a/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java b/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java deleted file mode 100644 index 57e58e9501..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/loader/RecipeLoader.java +++ /dev/null @@ -1,4508 +0,0 @@ -package com.elisis.gtnhlanth.loader; - -import static com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps.digesterRecipes; -import static com.elisis.gtnhlanth.api.recipe.LanthanidesRecipeMaps.dissolutionTankRecipes; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.CeriumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.CeriumDioxide; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.CeriumDopedLutetiumAluminiumGarnet; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.CeriumDopedLutetiumAluminiumOxygenBlend; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.CeriumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.CeriumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ChlorinatedRareEarthConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ChlorinatedRareEarthDilutedSolution; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ChlorinatedRareEarthEnrichedSolution; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.DephosphatedSamariumConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.DilutedSamariumRareEarthSolution; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.DysprosiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.DysprosiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.DysprosiumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ErbiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ErbiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ErbiumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.EuropiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.EuropiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.EuropiumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledCeriumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledDysprosiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledErbiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledEuropiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledGadoliniumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledHolmiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledLanthanumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledLutetiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledNeodymiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledPraseodymiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledPromethiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledSamariumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledTerbiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledThuliumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.FilledYtterbiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.GadoliniumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.GadoliniumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.GadoliniumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.Gangue; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.HolmiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.HolmiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.HolmiumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ImpureLanthanumChloride; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.LanthaniumChloride; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.LanthanumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.LanthanumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.LanthanumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.LutetiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.LutetiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.LutetiumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.MuddySamariumRareEarthSolution; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.NeodymicRareEarthConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.NeodymiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.NeodymiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.NeodymiumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.PraseodymiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.PraseodymiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.PraseodymiumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.PromethiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.PromethiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.PromethiumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.RarestEarthResidue; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.SamariumChloride; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.SamariumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.SamariumChlorideSodiumChlorideBlend; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.SamariumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.SamariumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.SamariumOxalate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.SamariumOxide; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.SamariumRareEarthMud; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.TerbiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.TerbiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.TerbiumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ThoriumPhosphateConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ThuliumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ThuliumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.ThuliumOreConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.YtterbiumChlorideConcentrate; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.YtterbiumExtractingNanoResin; -import static com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool.YtterbiumOreConcentrate; -import static gregtech.api.enums.Mods.NewHorizonsCoreMod; -import static gregtech.api.enums.Mods.PamsHarvestCraft; -import static gregtech.api.enums.OrePrefixes.blockCasingAdvanced; -import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; -import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; -import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes; -import static gregtech.api.recipe.RecipeMaps.centrifugeNonCellRecipes; -import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; -import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; -import static gregtech.api.recipe.RecipeMaps.chemicalReactorRecipes; -import static gregtech.api.recipe.RecipeMaps.crackingRecipes; -import static gregtech.api.recipe.RecipeMaps.distillationTowerRecipes; -import static gregtech.api.recipe.RecipeMaps.electroMagneticSeparatorRecipes; -import static gregtech.api.recipe.RecipeMaps.electrolyzerNonCellRecipes; -import static gregtech.api.recipe.RecipeMaps.electrolyzerRecipes; -import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; -import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; -import static gregtech.api.recipe.RecipeMaps.hammerRecipes; -import static gregtech.api.recipe.RecipeMaps.laserEngraverRecipes; -import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; -import static gregtech.api.recipe.RecipeMaps.mixerNonCellRecipes; -import static gregtech.api.recipe.RecipeMaps.mixerRecipes; -import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; -import static gregtech.api.recipe.RecipeMaps.oreWasherRecipes; -import static gregtech.api.recipe.RecipeMaps.sifterRecipes; -import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; -import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes; -import static gregtech.api.util.GT_RecipeBuilder.MINUTES; -import static gregtech.api.util.GT_RecipeBuilder.SECONDS; -import static gregtech.api.util.GT_RecipeBuilder.TICKS; -import static gregtech.api.util.GT_RecipeConstants.AssemblyLine; -import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT; -import static gregtech.api.util.GT_RecipeConstants.DISSOLUTION_TANK_RATIO; -import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; -import static gregtech.api.util.GT_RecipeConstants.WaferEngravingRecipes; -import static gregtech.common.items.GT_MetaGenerated_Item_01.registerCauldronCleaningFor; -import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes; -import static gtPlusPlus.api.recipe.GTPPRecipeMaps.simpleWasherRecipes; -import static gtPlusPlus.api.recipe.GTPPRecipeMaps.vacuumFurnaceRecipes; - -import java.util.HashSet; - -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.IRecipe; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.oredict.OreDictionary; - -import com.elisis.gtnhlanth.Tags; -import com.elisis.gtnhlanth.common.item.MaskList; -import com.elisis.gtnhlanth.common.register.BotWerkstoffMaterialPool; -import com.elisis.gtnhlanth.common.register.LanthItemList; -import com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool; -import com.github.bartimaeusnek.bartworks.system.material.BW_GT_MaterialReference; -import com.github.bartimaeusnek.bartworks.system.material.GT_Enhancement.PlatinumSludgeOverHaul; -import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; - -import cpw.mods.fml.common.registry.GameRegistry; -import goodgenerator.items.MyMaterial; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.TierEU; -import gregtech.api.interfaces.IRecipeMutableAccess; -import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_RecipeBuilder; -import gregtech.api.util.GT_RecipeConstants; -import gregtech.api.util.GT_Utility; -import ic2.core.Ic2Items; - -public class RecipeLoader { - - public static void loadAccelerator() { - - /* Actual Beamline Multiblocks */ - - // SC - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.SolderingAlloy.getMolten(288)) - .itemInputs( - ItemList.Hull_LuV.get(1), - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 8), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 4), - ItemList.Conveyor_Module_LuV.get(4), - GT_Utility.copyAmount(2, LanthItemList.BEAMLINE_PIPE), - GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 2), - GT_Utility.getIntegratedCircuit(16) - - ) - .itemOutputs(LanthItemList.SOURCE_CHAMBER) - .duration(30 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(assemblerRecipes); - - // LINAC - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.SolderingAlloy.getMolten(288)) - .itemInputs( - ItemList.Hull_LuV.get(1), - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 8), - ItemList.Casing_Coil_Superconductor.get(2), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 8), - ItemList.Electric_Pump_LuV.get(2), - GT_Utility.copyAmount(2, LanthItemList.BEAMLINE_PIPE), - GT_OreDictUnificator.get(OrePrefixes.cableGt08, Materials.VanadiumGallium, 2), - GT_Utility.getIntegratedCircuit(16) - - ) - .itemOutputs(LanthItemList.LINAC) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(assemblerRecipes); - - // TC - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.SolderingAlloy.getMolten(288)) - .itemInputs( - ItemList.Hull_LuV.get(1), - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 8), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Lead, 4), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 4), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UV, 2), - GT_Utility.copyAmount(2, LanthItemList.BEAMLINE_PIPE), - GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.VanadiumGallium, 1), - GT_Utility.getIntegratedCircuit(16) - - ) - .itemOutputs(LanthItemList.TARGET_CHAMBER) - .duration(30 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(assemblerRecipes); - - // Synchrotron - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.SolderingAlloy.getMolten(6000)) - .itemInputs( - ItemList.Hull_LuV.get(1), - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 8), - ItemList.Casing_Coil_Superconductor.get(12), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.ZPM, 8), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.UV, 8), - GT_Utility.copyAmount(8, LanthItemList.BEAMLINE_PIPE), - GT_OreDictUnificator.get(OrePrefixes.cableGt08, Materials.NiobiumTitanium, 8), - GT_Utility.getIntegratedCircuit(16)) - .itemOutputs(LanthItemList.SYNCHROTRON) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(assemblerRecipes); - - /* - * //Permalloy GT_Values.RA.addMixerRecipe( GT_Utility.getIntegratedCircuit(4), Materials.Nickel.getDust(4), - * Materials.Iron.getDust(1), Materials.Molybdenum.getDust(1), null, null, - * WerkstoffMaterialPool.Permalloy.get(OrePrefixes.dust, 6), 1920, 200 ); - */ - // Mu-metal - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(2), - WerkstoffMaterialPool.Permalloy.get(OrePrefixes.dust, 9), - Materials.Copper.getDust(1), - Materials.Chrome.getDust(1)) - .itemOutputs(WerkstoffMaterialPool.MuMetal.get(OrePrefixes.ingot, 11)) - .duration(20 * SECONDS) - .eut(TierEU.RECIPE_EV) - .specialValue(4500) - .addTo(blastFurnaceRecipes); - - // Shielded Accelerator Casing -- Maybe assline recipe - GT_Values.RA.stdBuilder() - .itemInputs( - ItemList.Casing_RadiationProof.get(1L), - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 6), - GT_Utility.getIntegratedCircuit(6)) - .fluidInputs(Materials.SolderingAlloy.getMolten(144)) - .itemOutputs(new ItemStack(LanthItemList.SHIELDED_ACCELERATOR_CASING, 1)) - .duration(40 * SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(assemblerRecipes); - - // Accelerator Electrode Casing - GT_Values.RA.stdBuilder() - .itemInputs( - BW_GT_MaterialReference.Silver.get(blockCasingAdvanced, 1), - GT_OreDictUnificator.get(OrePrefixes.wireGt02, Materials.Silver, 12), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Gold, 6), - GT_Utility.getIntegratedCircuit(6)) - .fluidInputs(Materials.SolderingAlloy.getMolten(288)) - .itemOutputs(new ItemStack(LanthItemList.ELECTRODE_CASING, 1)) - .duration(40 * SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(assemblerRecipes); - - ItemStack insulator = GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MicaInsulatorSheet", 1); - - // Coolant Delivery Casing - - GT_Values.RA.stdBuilder() - .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Aluminium, 1), - Materials.Copper.getPlates(6), - GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Naquadah, 2), - ItemList.Electric_Pump_LuV.get(3L), - new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 1), - new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 1), - new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 1), - GT_Utility.copyAmount(2, insulator), - GT_Utility.copyAmount(2, insulator), - GT_Utility.copyAmount(2, insulator), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Tungsten, 1)) - .fluidInputs(Materials.SolderingAlloy.getMolten(288), Materials.Lubricant.getFluid(1152)) - .itemOutputs(new ItemStack(LanthItemList.COOLANT_DELIVERY_CASING)) - .metadata(GT_RecipeConstants.RESEARCH_ITEM, ItemList.Casing_Pipe_TungstenSteel.get(1L)) - .metadata(GT_RecipeConstants.RESEARCH_TIME, 72000) - .duration(50 * SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(AssemblyLine); - - // T1 Antenna Casing - GT_Values.RA.stdBuilder() - .fluidInputs( - Materials.SolderingAlloy.getMolten(6000), - Materials.Gold.getMolten(4000), - WerkstoffLoader.Xenon.getFluidOrGas(2000)) - .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Tungsten, 1), - Materials.Copper.getPlates(4), - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 5), - GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorLuV, 4), - new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 4 }, - ItemList.Emitter_LuV.get(6), - GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 32), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Electrum, 6)) - .itemOutputs(new ItemStack(LanthItemList.ANTENNA_CASING_T1)) - - .metadata(GT_RecipeConstants.RESEARCH_ITEM, Materials.Niobium.getBlocks(1)) - .metadata(GT_RecipeConstants.RESEARCH_TIME, 30 * GT_RecipeBuilder.MINUTES) - - .duration(30 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(AssemblyLine); - - // T2 Antenna Casing - GT_Values.RA.stdBuilder() - .fluidInputs( - Materials.SolderingAlloy.getMolten(12000), - Materials.Gold.getMolten(6000), - WerkstoffLoader.Xenon.getFluidOrGas(2000)) - .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenCarbide, 1), - Materials.Copper.getPlates(4), - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 5), - GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorZPM, 4), - new Object[] { OrePrefixes.circuit.get(Materials.UV), 4 }, - ItemList.Emitter_ZPM.get(6), - GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 64), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Electrum, 6)) - .itemOutputs(new ItemStack(LanthItemList.ANTENNA_CASING_T2)) - .metadata(GT_RecipeConstants.RESEARCH_ITEM, new ItemStack(LanthItemList.ANTENNA_CASING_T1)) - .metadata(GT_RecipeConstants.RESEARCH_TIME, 40 * GT_RecipeBuilder.MINUTES) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(AssemblyLine); - - // Niobium Cavity Casing - GT_Values.RA.stdBuilder() - .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Niobium, 1), - Materials.Niobium.getPlates(6)) - .fluidInputs(Materials.Helium.getGas(2000)) - .itemOutputs(new ItemStack(LanthItemList.NIOBIUM_CAVITY_CASING, 1)) - .duration(12 * GT_RecipeBuilder.SECONDS) - .eut(7680) - .addTo(assemblerRecipes); - - // Focus Manipulator - GT_Values.RA.stdBuilder() - .fluidInputs( - Materials.SolderingAlloy.getMolten(8000), - Materials.Gold.getMolten(2000), - Materials.Argon.getGas(1000)) - .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Aluminium, 1), - - new Object[] { OrePrefixes.circuit.get(Materials.IV), 4 }, - ItemList.Robot_Arm_LuV.get(2), - ItemList.Robot_Arm_LuV.get(2), - ItemList.Conveyor_Module_LuV.get(2), - GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 16), - GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 16), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Tungsten, 2)) - .itemOutputs(new ItemStack(LanthItemList.FOCUS_MANIPULATION_CASING)) - .metadata(GT_RecipeConstants.RESEARCH_ITEM, new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK1))) - .metadata(GT_RecipeConstants.RESEARCH_TIME, 20 * GT_RecipeBuilder.MINUTES) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(AssemblyLine); - - // Target Holder - GameRegistry.addShapedRecipe( - new ItemStack(LanthItemList.TARGET_HOLDER), - new Object[] { "MCM", "MHM", "MCM", 'M', WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 1), 'H', - ItemList.Hull_LuV.get(1), 'C', ItemList.Conveyor_Module_LuV.get(1) }); - - GameRegistry.addShapedRecipe( - - new ItemStack(LanthItemList.FOCUS_HOLDER), - new Object[] { "MCM", "R R", "MHM", 'M', WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 1), 'C', - ItemList.Conveyor_Module_LuV.get(1), 'R', ItemList.Robot_Arm_LuV.get(1), 'H', - ItemList.Hull_LuV.get(1) }); - - // Focus Input Bus - GameRegistry.addShapedRecipe( - LanthItemList.BEAMLINE_FOCUS_INPUT_BUS, - "MCM", - "McM", - "RCR", - 'M', - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plateDense, 1), - 'C', - ItemList.Conveyor_Module_HV.get(1), - 'R', - ItemList.Robot_Arm_HV.get(1), - 'c', - new ItemStack(Blocks.chest, 1, 32767)); - - // Target Receptacle, same thing as Focus Manipulator basically - GT_Values.RA.stdBuilder() - .fluidInputs( - Materials.SolderingAlloy.getMolten(8000), - Materials.Gold.getMolten(2000), - Materials.Argon.getGas(1000)) - .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Aluminium, 1), - new Object[] { OrePrefixes.circuit.get(Materials.IV), 4 }, - ItemList.Robot_Arm_LuV.get(2), - ItemList.Robot_Arm_LuV.get(2), - GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Gold, 16), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Tungsten, 2)) - .itemOutputs(new ItemStack(LanthItemList.TARGET_RECEPTACLE_CASING)) - .metadata(GT_RecipeConstants.RESEARCH_ITEM, ItemList.Circuit_Silicon_Wafer.get(1)) - .metadata(GT_RecipeConstants.RESEARCH_TIME, 20 * GT_RecipeBuilder.MINUTES) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(AssemblyLine); - - // Capillary Exchange - GT_Values.RA.stdBuilder() - .itemInputs( - GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 8), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Copper, 2), - Materials.Titanium.getPlates(6), - GT_Utility.copyAmount(4, insulator), - ItemList.Electric_Pump_LuV.get(1), - Materials.Silver.getDust(2)) - .fluidInputs(Materials.Silicone.getMolten(288L)) - .itemOutputs(new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 1)) - .duration(20 * SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(assemblerRecipes); - - // Mu-metal lattice - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.wireFine, 12), - GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 4)) - .fluidInputs(Materials.SolderingAlloy.getMolten(144)) - .itemOutputs(new ItemStack(LanthItemList.MM_LATTICE, 1)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(assemblerRecipes); - - // Shielded Accelerator Glass - GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(LanthItemList.MM_LATTICE, 4)) - .fluidInputs(Materials.BorosilicateGlass.getMolten(144)) - .itemOutputs(new ItemStack(LanthItemList.SHIELDED_ACCELERATOR_GLASS, 1)) - .duration(25 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(fluidSolidifierRecipes); - - // Beamline Pipe - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 4), - GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenCarbide, 4), - GT_OreDictUnificator.get(OrePrefixes.stick, Materials.TungstenCarbide, 8), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 4), - GT_Utility.getIntegratedCircuit(7)) - .fluidInputs(Materials.SolderingAlloy.getMolten(144)) - .itemOutputs(LanthItemList.BEAMLINE_PIPE) - .duration(20 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(assemblerRecipes); - - // Beamline Input Hatch - GT_Values.RA.stdBuilder() - .fluidInputs( - Materials.SolderingAlloy.getMolten(6000), - Materials.Argon.getGas(1000), - Materials.Helium.getGas(2000) - - ) - .itemInputs( - ItemList.Hull_LuV.get(1), - new Object[] { OrePrefixes.circuit.get(Materials.LuV), 2 }, - new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 2), - ItemList.Electric_Pump_LuV.get(1), - LanthItemList.BEAMLINE_PIPE, - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 4) - - ) - .itemOutputs(LanthItemList.LUV_BEAMLINE_INPUT_HATCH) - .metadata(GT_RecipeConstants.RESEARCH_ITEM, ItemList.Hatch_Input_LuV.get(1)) - .metadata(GT_RecipeConstants.RESEARCH_TIME, 30 * GT_RecipeBuilder.MINUTES) - .duration(2 * GT_RecipeBuilder.MINUTES) - .eut(TierEU.RECIPE_LuV) - .addTo(AssemblyLine); - - // Beamline Output Hatch - GT_Values.RA.stdBuilder() - .fluidInputs( - Materials.SolderingAlloy.getMolten(8000), - Materials.Argon.getGas(1000), - Materials.Helium.getGas(6000) - - ) - .itemInputs( - ItemList.Hull_LuV.get(1), - new Object[] { OrePrefixes.circuit.get(Materials.LuV), 6 }, - new ItemStack(LanthItemList.CAPILLARY_EXCHANGE, 4), - ItemList.Electric_Pump_LuV.get(2), - ItemList.Electric_Motor_LuV.get(4), - GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SuperconductorLuV, 8), - LanthItemList.BEAMLINE_PIPE, - WerkstoffMaterialPool.MuMetal.get(OrePrefixes.plate, 8) - - ) - .itemOutputs(LanthItemList.LUV_BEAMLINE_OUTPUT_HATCH) - .metadata(GT_RecipeConstants.RESEARCH_ITEM, ItemList.Hatch_Output_LuV.get(1)) - .metadata(GT_RecipeConstants.RESEARCH_TIME, 40 * GT_RecipeBuilder.MINUTES) - .duration(4 * GT_RecipeBuilder.MINUTES) - .eut(TierEU.RECIPE_LuV) - .addTo(AssemblyLine); - - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.Chloroform.getFluid(1000), Materials.HydrofluoricAcid.getFluid(3000)) - .fluidOutputs( - WerkstoffMaterialPool.Fluoroform.getFluidOrGas(1000), - Materials.HydrochloricAcid.getFluid(3000)) - .duration(15 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(multiblockChemicalReactorRecipes); - - /* - * GT_Values.RA.stdBuilder() - * .fluidInputs(Materials.Nitrogen.getPlasma(4000), Materials.Silane.getFluid(2000)) - * .fluidOutputs(WerkstoffMaterialPool.NitrogenPlasmaSilaneMix.getFluidOrGas(6000)) - * .duration(20 * GT_RecipeBuilder.SECONDS) - * .eut(7680) - * .addTo(mixerNonCellRecipes); - */ - - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.Nitrogen.getPlasma(4000)) - .itemInputs(Materials.Silane.getCells(2)) - .fluidOutputs(WerkstoffMaterialPool.NitrogenPlasmaSilaneMix.getFluidOrGas(6000)) - .duration(20 * GT_RecipeBuilder.SECONDS) - .eut(7680) - .noOptimize() - .addTo(mixerRecipes); - - // NB: http://www.smfl.rit.edu/pdf/process/process_nitride_etch_paper.pdf - // Reactive Ion Etchant - GT_Values.RA.stdBuilder() - .fluidInputs(WerkstoffMaterialPool.Fluoroform.getFluidOrGas(3000)) - .itemInputs(Materials.Oxygen.getCells(4)) - .fluidOutputs(WerkstoffMaterialPool.FluoroformOxygenMix.getFluidOrGas(5000)) - .itemOutputs(Materials.Empty.getCells(4)) - .duration(15 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(mixerRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Iron.getDust(2), Materials.NetherQuartz.getPlates(1)) - .itemOutputs(new ItemStack(LanthItemList.IRON_COATED_QUARTZ)) - .duration(10 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(assemblerRecipes); - - // Masks - // Quartz + Fe2O3 T1 - // " + Cr T2 - // - GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(LanthItemList.IRON_COATED_QUARTZ)) - .fluidInputs(Materials.Oxygen.getGas(1000)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK1))) - .outputChances(10000) - .requiresCleanRoom() - .duration(144 * SECONDS) - .eut(TierEU.RECIPE_LuV) - .addTo(autoclaveRecipes); - - /* - * Unsure what was intended with this recipe? - * GT_Values.RA.stdBuilder() - * .itemInputs(new ItemStack(LanthItemList.IRON_COATED_QUARTZ), Materials.Chrome.getDust(1)) - * .fluidInputs(Materials.Oxygen.getGas(1000)) - * .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK2))) - * .outputChances(10000).requiresCleanRoom().duration(12 * SECONDS).eut(7980).addTo(autoclaveRecipes); - */ - - // Grow the first silicon - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Glass.getPlates(1)) - .fluidInputs(Materials.Silane.getGas(4000)) - .itemOutputs(new ItemStack(LanthItemList.SUBSTRATE_PRECURSOR)) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_LuV) - .requiresCleanRoom() - .addTo(autoclaveRecipes); - - // Now to deposit nitride - GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(LanthItemList.SUBSTRATE_PRECURSOR)) - .fluidInputs(WerkstoffMaterialPool.NitrogenPlasmaSilaneMix.getFluidOrGas(4000)) - .fluidOutputs(Materials.Nitrogen.getGas(3000)) - .itemOutputs(new ItemStack(LanthItemList.MASK_SUBSTRATE), Materials.Empty.getCells(2)) - .duration(30 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_LuV) - .specialValue(3200) - .requiresCleanRoom() - .addTo(blastFurnaceRecipes); - - /* - * GT_Values.RA.stdBuilder().itemInputs(GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Silicon, 1)) - * .fluidInputs(Materials.SiliconTetrachloride.getFluid(3000), Materials.Ammonia.getFluid(4000)) - * .fluidOutputs(Materials.HydrochloricAcid.getFluid(12000)) - * .itemOutputs(WerkstoffMaterialPool.SiliconNitride.get(OrePrefixes.plate)) .duration(GT_RecipeBuilder.SECONDS - * * 30) .eut(TierEU.EV) .addTo(GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes); - */ - - for (ItemStack lens : OreDictionary.getOres("craftingLensYellow")) { - - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.copyAmount(0, lens), new ItemStack(LanthItemList.MASK_SUBSTRATE)) - .itemOutputs(new ItemStack(LanthItemList.MASKED_MASK)) - .duration(30 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_IV) - .requiresCleanRoom() - .addTo(WaferEngravingRecipes); - - } - - GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(LanthItemList.MASKED_MASK)) - .fluidInputs(WerkstoffMaterialPool.FluoroformOxygenMix.getFluidOrGas(4000)) - .itemOutputs(new ItemStack(LanthItemList.ETCHED_MASK_1)) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_LuV) - .requiresCleanRoom() - .addTo(autoclaveRecipes); - - // Etch pt. 2 with LiCl - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.Argon.getGas(1000)) - .itemInputs( - new ItemStack(LanthItemList.MASKED_MASK), - MyMaterial.lithiumChloride.get(OrePrefixes.dust, 2), - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PotassiumHydroxideDust", 4)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK2))) - .duration(80 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_ZPM) - .specialValue(2400) - .addTo(blastFurnaceRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs( - new ItemStack(LanthItemList.ETCHED_MASK_1), - Materials.Sodium.getDust(1), - Materials.Chrome.getPlates(1), - Materials.Gold.getPlates(2)) - .fluidInputs(Materials.Hydrogen.getGas(1000)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.BLANK3))) - .duration(2 * GT_RecipeBuilder.MINUTES) - .eut(TierEU.RECIPE_ZPM) - .specialValue(3600) - .addTo(blastFurnaceRecipes); - - for (MaskList mask : MaskList.values()) { - - MaskList maskIngredient = mask.getPrecursor(); - Dyes lensColour = mask.getLensColour(); - - if (maskIngredient == null) continue; - - if (mask.getLensColour() == null) { // CR Recipe - - if (mask == MaskList.PPIC) { - - GT_Values.RA.stdBuilder() - .itemInputs( - new ItemStack(LanthItemList.maskMap.get(MaskList.NPIC)), - Materials.IndiumGalliumPhosphide.getDust(64)) - .fluidInputs(Materials.Sunnarium.getMolten(1440L)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.PPIC))) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(mask.getEngraverEUt()) - .requiresCleanRoom() - .addTo(UniversalChemical); // This is incredibly boring and doesn't make much sense, fix at some - // point. Maybe engrave again from precursor? - - } else if (mask == MaskList.HPIC) { - GT_Values.RA.stdBuilder() - .itemInputs( - new ItemStack(LanthItemList.maskMap.get(MaskList.PIC)), - Materials.IndiumGalliumPhosphide.getDust(2)) - .fluidInputs(Materials.VanadiumGallium.getMolten(288L)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.HPIC))) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(mask.getEngraverEUt()) - .requiresCleanRoom() - .addTo(UniversalChemical); - - } else if (mask == MaskList.UHPIC) { - - GT_Values.RA.stdBuilder() - .itemInputs( - new ItemStack(LanthItemList.maskMap.get(MaskList.HPIC)), - Materials.IndiumGalliumPhosphide.getDust(8)) - .fluidInputs(Materials.Naquadah.getMolten(576L)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.UHPIC))) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(mask.getEngraverEUt()) - .requiresCleanRoom() - .addTo(UniversalChemical); - - } else if (mask == MaskList.NCPU) { - - GT_Values.RA.stdBuilder() - .itemInputs( - new ItemStack(LanthItemList.maskMap.get(MaskList.CPU)), - GT_Utility.copyAmount(16, Ic2Items.carbonFiber)) - .fluidInputs(Materials.Glowstone.getMolten(576L)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.NCPU))) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(mask.getEngraverEUt()) - .requiresCleanRoom() - .addTo(UniversalChemical); - - } else if (mask == MaskList.QBIT) { - - GT_Values.RA.stdBuilder() - .itemInputs( - new ItemStack(LanthItemList.maskMap.get(MaskList.NCPU)), - Materials.IndiumGalliumPhosphide.getDust(1)) - .fluidInputs(Materials.Radon.getGas(50L)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.QBIT))) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(mask.getEngraverEUt()) - .requiresCleanRoom() - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(LanthItemList.maskMap.get(MaskList.NCPU)), ItemList.QuantumEye.get(2)) - .fluidInputs(Materials.GalliumArsenide.getMolten(288L)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(MaskList.QBIT))) - .duration(45 * GT_RecipeBuilder.SECONDS) - .eut(mask.getEngraverEUt()) - .requiresCleanRoom() - .addTo(UniversalChemical); - - } - - continue; - - } - - if (mask == MaskList.NAND) { - - // Very copy-paste heavy, could possibly offload most of this into one case and just assign an - // otherIngredient variable or something, wouldn't save much space though. Plus: lazy - GT_Values.RA.stdBuilder() - .itemInputs( - new ItemStack(LanthItemList.maskMap.get(maskIngredient)), - GT_Utility.copyAmount(0, GT_OreDictUnificator.get(OrePrefixes.lens, Materials.EnderPearl, 1))) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(mask))) - .requiresCleanRoom() - .duration(120 * SECONDS) - .eut(mask.getEngraverEUt()) - .addTo(WaferEngravingRecipes); - - } else if (mask == MaskList.NOR) { - - GT_Values.RA.stdBuilder() - .itemInputs( - new ItemStack(LanthItemList.maskMap.get(maskIngredient)), - GT_Utility.copyAmount(0, GT_OreDictUnificator.get(OrePrefixes.lens, Materials.EnderEye, 1))) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(mask))) - .requiresCleanRoom() - .duration(120 * SECONDS) - .eut(mask.getEngraverEUt()) - .addTo(WaferEngravingRecipes); - - } - - else { - - for (ItemStack lens : OreDictionary.getOres("craftingLens" + lensColour.mName.replace(" ", ""))) { - - if (lens == null) continue; - - GT_Values.RA.stdBuilder() - .itemInputs( - new ItemStack(LanthItemList.maskMap.get(maskIngredient)), - GT_Utility.copyAmount(0, lens)) - .itemOutputs(new ItemStack(LanthItemList.maskMap.get(mask))) - .requiresCleanRoom() - .duration(120 * SECONDS) - .eut(mask.getEngraverEUt()) - .addTo(WaferEngravingRecipes); - - } - } - } - - } - - public static void loadGeneral() { - - /* ZIRCONIUM */ - // ZrCl4 - // ZrO2 + 4HCl = ZrCl4 + 2H2O - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(1), WerkstoffMaterialPool.Zirconia.get(OrePrefixes.dust, 3)) - .itemOutputs(WerkstoffMaterialPool.ZirconiumTetrachloride.get(OrePrefixes.dust, 5)) - .fluidInputs(Materials.HydrochloricAcid.getFluid(4000)) - .fluidOutputs(Materials.Water.getFluid(2000)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(UniversalChemical); - - // ZrCl4-H2O - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(1), - WerkstoffMaterialPool.ZirconiumTetrachloride.get(OrePrefixes.dust, 5)) - .fluidInputs(Materials.Water.getFluid(1000)) - .fluidOutputs(WerkstoffMaterialPool.ZirconiumTetrachlorideSolution.getFluidOrGas(1000)) - .duration(10 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(UniversalChemical); - - // Zr - // ZrCl4·H2O + 2Mg = Zr + 2MgCl2 - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(2), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2)) - .itemOutputs( - WerkstoffMaterialPool.Zirconium.get(OrePrefixes.ingotHot, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesiumchloride, 6)) - .fluidInputs(WerkstoffMaterialPool.ZirconiumTetrachlorideSolution.getFluidOrGas(1000)) - .duration(30 * SECONDS) - .eut(TierEU.RECIPE_EV) - .metadata(COIL_HEAT, 4500) - .addTo(blastFurnaceRecipes); - - /* HAFNIUM */ - // HfCl4 - // HfO2 + 4HCl = HfCl4 + 2H2O - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(1), WerkstoffMaterialPool.Hafnia.get(OrePrefixes.dust, 3)) - .itemOutputs(WerkstoffMaterialPool.HafniumTetrachloride.get(OrePrefixes.dust, 5)) - .fluidInputs(Materials.HydrochloricAcid.getFluid(4000)) - .fluidOutputs(Materials.Water.getFluid(2000)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(UniversalChemical); - - // HfCl4-H2O - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(1), - WerkstoffMaterialPool.HafniumTetrachloride.get(OrePrefixes.dust, 5)) - .fluidInputs(Materials.Water.getFluid(1000)) - .fluidOutputs(WerkstoffMaterialPool.HafniumTetrachlorideSolution.getFluidOrGas(1000)) - .duration(10 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(UniversalChemical); - - // LP-Hf - // HfCl4 + 2Mg = ??Hf?? + 2MgCl2 - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(2), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 2)) - .itemOutputs( - WerkstoffMaterialPool.LowPurityHafnium.get(OrePrefixes.dust, 1), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesiumchloride, 6)) - .fluidInputs(WerkstoffMaterialPool.HafniumTetrachlorideSolution.getFluidOrGas(1000)) - .duration(30 * SECONDS) - .eut(TierEU.RECIPE_EV) - .metadata(COIL_HEAT, 2700) - .addTo(blastFurnaceRecipes); - - // HfI4 - // ??Hf?? + 4I = HfI4 - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(1), - WerkstoffMaterialPool.LowPurityHafnium.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.HafniumIodide.get(OrePrefixes.dust, 5)) - .fluidInputs(WerkstoffMaterialPool.Iodine.getFluidOrGas(4000)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.LowPurityHafnium.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.Iodine.get(OrePrefixes.dust, 4)) - .itemOutputs(WerkstoffMaterialPool.HafniumIodide.get(OrePrefixes.dust, 5)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(UniversalChemical); - - // Hf - // HfI4 = Hf + 4I - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(12), - WerkstoffMaterialPool.HafniumIodide.get(OrePrefixes.dust, 5)) - .itemOutputs( - WerkstoffMaterialPool.Hafnium.get(OrePrefixes.ingotHot, 1), - WerkstoffMaterialPool.HafniumRunoff.get(OrePrefixes.dustTiny, 1)) - .fluidOutputs(WerkstoffMaterialPool.Iodine.getFluidOrGas(4000)) - .duration(30 * SECONDS) - .eut(TierEU.RECIPE_HV) - .metadata(COIL_HEAT, 3400) - .addTo(blastFurnaceRecipes); - - // Hf * 9 - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(13), - WerkstoffMaterialPool.HafniumIodide.get(OrePrefixes.dust, 45)) - .itemOutputs( - WerkstoffMaterialPool.Hafnium.get(OrePrefixes.ingotHot, 9), - WerkstoffMaterialPool.HafniumRunoff.get(OrePrefixes.dust, 1)) - .fluidOutputs(WerkstoffMaterialPool.Iodine.getFluidOrGas(36000)) - .duration(4 * MINUTES + 30 * TICKS) - .eut(TierEU.RECIPE_HV) - .metadata(COIL_HEAT, 3400) - .addTo(blastFurnaceRecipes); - - // Zirconia-Hafnia - // ??HfZr?? = HfO2 + ZrO2 - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dust, 1)) - .itemOutputs( - WerkstoffMaterialPool.Hafnia.get(OrePrefixes.dust, 3), - WerkstoffMaterialPool.Zirconia.get(OrePrefixes.dust, 3)) - .eut(TierEU.RECIPE_EV) - .duration(30 * SECONDS) - .addTo(centrifugeRecipes); - - // Ammonium Nitrate - // HNO3 + NH3 = NH4NO3 - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(12), Materials.NitricAcid.getCells(1)) - .itemOutputs(Materials.Empty.getCells(1)) - .fluidInputs(Materials.Ammonia.getGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(1000)) - .duration(1 * SECONDS + 10 * TICKS) - .eut(400) - .addTo(chemicalReactorRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(12)) - .fluidInputs(Materials.NitricAcid.getFluid(1000), Materials.Ammonia.getGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(1000)) - .duration(1 * SECONDS + 10 * TICKS) - .eut(400) - .addTo(multiblockChemicalReactorRecipes); - - // IODINE-START - // SeaweedAsh - GT_ModHandler.addSmeltingRecipe( - GT_ModHandler.getModItem(PamsHarvestCraft.ID, "seaweedItem", 1), - WerkstoffMaterialPool.SeaweedAsh.get(OrePrefixes.dustSmall, 1)); - - // SeaweedConcentrate - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.SeaweedAsh.get(OrePrefixes.dust, 2)) - .itemOutputs(Materials.Calcite.getDust(1)) - .fluidInputs(Materials.DilutedSulfuricAcid.getFluid(1200)) - .fluidOutputs(WerkstoffMaterialPool.SeaweedConcentrate.getFluidOrGas(1200)) - .duration(30 * SECONDS) - .eut(240) - .addTo(mixerRecipes); - // SeaweedConcentrate * 4 - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.SeaweedAsh.get(OrePrefixes.dust, 4)) - .itemOutputs(Materials.Calcite.getDust(2)) - .fluidInputs(Materials.DilutedSulfuricAcid.getFluid(2400)) - .fluidOutputs(WerkstoffMaterialPool.SeaweedConcentrate.getFluidOrGas(2400)) - .duration(60 * SECONDS) - .eut(240) - .addTo(mixerRecipes); - - // Iodine - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Benzene.getCells(1)) - .fluidInputs(WerkstoffMaterialPool.SeaweedConcentrate.getFluidOrGas(2000)) - .fluidOutputs(WerkstoffMaterialPool.SeaweedByproducts.getFluidOrGas(200)) - .eut(TierEU.RECIPE_HV) - .duration(38 * SECONDS) - .addTo(centrifugeRecipes); - - // IODINE-END - - // 2MnO2 + 2KOH + KClO3 = 2KMnO4 + H2O + KCl - GT_Values.RA.stdBuilder() - .itemInputs( - Materials.Pyrolusite.getDust(6), - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PotassiumHydroxideDust", 6), - WerkstoffMaterialPool.PotassiumChlorate.get(OrePrefixes.dust, 5)) - .itemOutputs( - WerkstoffMaterialPool.PotassiumPermanganate.get(OrePrefixes.dust, 12), - Materials.RockSalt.getDust(2)) - .fluidOutputs(Materials.Water.getFluid(1000)) - .duration(7 * SECONDS + 10 * TICKS) - .eut(TierEU.RECIPE_HV) - .metadata(COIL_HEAT, 1200) - .addTo(blastFurnaceRecipes); - - // Mn + 2O = MnO2 - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Manganese.getDust(1), GT_Utility.getIntegratedCircuit(1)) - .itemOutputs(Materials.Pyrolusite.getDust(3)) - .fluidInputs(Materials.Oxygen.getGas(2000)) - .duration(2 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(UniversalChemical); - - // 6KOH + 6Cl = KClO3 + 5KCl + 3H2O - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PotassiumHydroxideDust", 18), - GT_Utility.getIntegratedCircuit(3)) - .itemOutputs( - Materials.RockSalt.getDust(10), - WerkstoffMaterialPool.PotassiumChlorate.get(OrePrefixes.dust, 5)) - .fluidInputs(Materials.Chlorine.getGas(6000)) - .fluidOutputs(Materials.Water.getFluid(3000)) - .duration(2 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(UniversalChemical); - - // Sodium Fluorosilicate - // 2NaCl + H2SiF6 = 2HCl + Na2SiF6 - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2), Materials.Salt.getDust(4)) - .itemOutputs(Materials.HydrochloricAcid.getCells(2)) - .fluidInputs(WerkstoffLoader.HexafluorosilicicAcid.getFluidOrGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.SodiumFluorosilicate.getFluidOrGas(1000)) - .duration(30 * SECONDS) - .eut(450) - .addTo(UniversalChemical); - - // La + 6HCl = LaCl3 + 3H - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Lanthanum.getDust(1), GT_Utility.getIntegratedCircuit(1)) - .fluidInputs(Materials.HydrochloricAcid.getFluid(3000)) - .itemOutputs(WerkstoffMaterialPool.LanthaniumChloride.get(OrePrefixes.dust, 4)) - .fluidOutputs(Materials.Hydrogen.getGas(3000)) - .duration(10 * SECONDS) - .eut(480) - .addTo(UniversalChemical); - - // Lanthanum Oxide - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.Water.getFluid(3000)) - .fluidOutputs(Materials.HydrochloricAcid.getFluid(6000)) - .itemInputs(WerkstoffMaterialPool.LanthaniumChloride.get(OrePrefixes.dust, 4)) - .itemOutputs(WerkstoffMaterialPool.LanthanumOxide.get(OrePrefixes.dust, 1)) - .duration(10 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - // Boron Trioxide - GT_Values.RA.stdBuilder() - .fluidInputs(FluidRegistry.getFluidStack("boricacid", 2000)) - .fluidOutputs(new FluidStack(FluidRegistry.WATER, 3000)) - .itemOutputs(WerkstoffMaterialPool.BoronTrioxide.get(OrePrefixes.dust, 1)) - .duration(15 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(UniversalChemical); - - // Boron Trichloride - GT_Values.RA.stdBuilder() - .fluidInputs(BotWerkstoffMaterialPool.Phosgene.getFluidOrGas(3000)) - .fluidOutputs(WerkstoffMaterialPool.BoronTrichloride.getFluidOrGas(2000)) - .itemInputs(WerkstoffMaterialPool.BoronTrioxide.get(OrePrefixes.dust, 1), Materials.Empty.getCells(3)) - .itemOutputs(Materials.CarbonMonoxide.getCells(3)) - .duration(10 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - // Lanthanum Hexaboride - GT_Values.RA.stdBuilder() - .fluidInputs(WerkstoffMaterialPool.BoronTrichloride.getFluidOrGas(8000)) - .fluidOutputs(FluidRegistry.getFluidStack("boricacid", 1000)) - .itemInputs(WerkstoffMaterialPool.LanthanumOxide.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.LanthanumHexaboride.get(OrePrefixes.gemFlawless)) - .duration(60 * GT_RecipeBuilder.SECONDS) - .eut(TierEU.RECIPE_IV) - .addTo(autoclaveRecipes); - } - - public static void loadLanthanideRecipes() { - // Methanol - // CH4O + CO + 3O =V2O5= H2C2O4 + H2O - GT_Values.RA.stdBuilder() - .itemInputs(MyMaterial.vanadiumPentoxide.get(OrePrefixes.dustTiny, 1)) - .fluidInputs( - Materials.Methanol.getFluid(1000), - Materials.CarbonMonoxide.getGas(1000), - Materials.Oxygen.getGas(3000)) - .fluidOutputs(MyMaterial.oxalate.getFluidOrGas(1000), Materials.Water.getFluid(1000)) - .duration(22 * SECONDS + 10 * TICKS) - .eut(240) - .addTo(multiblockChemicalReactorRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(9), MyMaterial.vanadiumPentoxide.get(OrePrefixes.dust, 1)) - .fluidInputs( - Materials.Methanol.getFluid(9000), - Materials.CarbonMonoxide.getGas(9000), - Materials.Oxygen.getGas(27000)) - .fluidOutputs(MyMaterial.oxalate.getFluidOrGas(9000), Materials.Water.getFluid(9000)) - .duration(3 * MINUTES + 22 * SECONDS + 10 * TICKS) - .eut(240) - .addTo(multiblockChemicalReactorRecipes); - - // Ethanol - // C2H6O + 5O =V2O5= H2C2O4 + 2H2O - GT_Values.RA.stdBuilder() - .itemInputs(MyMaterial.vanadiumPentoxide.get(OrePrefixes.dustTiny, 1)) - .itemOutputs() - .fluidInputs(Materials.Ethanol.getFluid(1000), Materials.Oxygen.getGas(5000)) - .fluidOutputs(MyMaterial.oxalate.getFluidOrGas(1000), Materials.Water.getFluid(2000)) - .duration(22 * SECONDS + 10 * TICKS) - .eut(240) - .addTo(multiblockChemicalReactorRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(9), MyMaterial.vanadiumPentoxide.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.Ethanol.getFluid(9000), Materials.Oxygen.getGas(45000)) - .fluidOutputs(MyMaterial.oxalate.getFluidOrGas(9000), Materials.Water.getFluid(18000)) - .duration(3 * MINUTES + 22 * SECONDS + 10 * TICKS) - .eut(240) - .addTo(multiblockChemicalReactorRecipes); - - // Cerium Oxalate - // 2CeCl3 + 3H2C2O4 = 6HCl + Ce2(C2O4)3 - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(1), - WerkstoffMaterialPool.CeriumChloride.get(OrePrefixes.dust, 8)) - .itemOutputs(WerkstoffMaterialPool.CeriumOxalate.get(OrePrefixes.dust, 5)) - .fluidInputs(MyMaterial.oxalate.getFluidOrGas(3000)) - .fluidOutputs(Materials.HydrochloricAcid.getFluid(6000)) - .duration(15 * SECONDS) - .eut(450) - .addTo(UniversalChemical); - - // Cerium - // Ce2O3 = 2Ce + 3O - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.CeriumIIIOxide.get(OrePrefixes.dust, 5)) - .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cerium, 2)) - .fluidOutputs(Materials.Oxygen.getGas(3000)) - .duration(7 * SECONDS + 10 * TICKS) - .eut(TierEU.RECIPE_MV) - .addTo(electrolyzerRecipes); - - // CHAIN BEGIN - // MONAZITE - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.NitricAcid.getFluid(700)) - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Monazite, 2)) - .fluidOutputs(WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(400)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .eut(1920) - .duration(400) - .metadata(COIL_HEAT, 800) - .addTo(digesterRecipes); - - GT_Values.RA.stdBuilder() - .fluidInputs( - Materials.Water.getFluid(10000), - WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(1000)) - .itemInputs(GT_Utility.getIntegratedCircuit(1), Materials.Saltpeter.getDust(1)) - .fluidOutputs(WerkstoffMaterialPool.DilutedRareEarthMonaziteMud.getFluidOrGas(11000)) - .itemOutputs( - WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dustTiny, 4), - WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 1), - Materials.Monazite.getDustTiny(2)) - .eut(TierEU.RECIPE_HV) - .duration(900) - .metadata(DISSOLUTION_TANK_RATIO, 10) - .noOptimize() - .addTo(dissolutionTankRecipes); - - GT_Values.RA.stdBuilder() - .fluidInputs( - Materials.Water.getFluid(90000), - WerkstoffMaterialPool.MuddyRareEarthMonaziteSolution.getFluidOrGas(9000)) - .itemInputs(GT_Utility.getIntegratedCircuit(9), Materials.Saltpeter.getDust(9)) - .fluidOutputs(WerkstoffMaterialPool.DilutedRareEarthMonaziteMud.getFluidOrGas(99000)) - .itemOutputs( - WerkstoffMaterialPool.HafniaZirconiaBlend.get(OrePrefixes.dust, 4), - WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 9), - Materials.Monazite.getDust(2)) - .eut(TierEU.RECIPE_HV) - .duration(8100) - .metadata(DISSOLUTION_TANK_RATIO, 10) - .noOptimize() - .addTo(dissolutionTankRecipes); - - GT_Values.RA.stdBuilder() - .fluidInputs(WerkstoffMaterialPool.DilutedRareEarthMonaziteMud.getFluidOrGas(1000)) - .itemOutputs( - WerkstoffMaterialPool.MonaziteSulfate.get(OrePrefixes.dust, 1), - Materials.SiliconDioxide.getDust(1), - Materials.Rutile.getDust(1), - WerkstoffLoader.RedZircon.get(OrePrefixes.dust, 1), - Materials.Ilmenite.getDust(1)) - .outputChances(90_00, 75_00, 20_00, 5_00, 20_00) - .duration(20 * SECONDS) - .eut(240) - .noOptimize() - .addTo(sifterRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.MonaziteSulfate.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.Water.getFluid(6000)) - .fluidOutputs(WerkstoffMaterialPool.DilutedMonaziteSulfate.getFluidOrGas(7000)) - .duration(24 * SECONDS) - .eut(400) - .addTo(mixerRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(13)) - .itemOutputs(WerkstoffMaterialPool.AcidicMonazitePowder.get(OrePrefixes.dustTiny, 3)) - .fluidInputs( - WerkstoffMaterialPool.DilutedMonaziteSulfate.getFluidOrGas(1000), - WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(200)) - .duration(24 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(multiblockChemicalReactorRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(14)) - .itemOutputs(WerkstoffMaterialPool.AcidicMonazitePowder.get(OrePrefixes.dust, 3)) - .fluidInputs( - WerkstoffMaterialPool.DilutedMonaziteSulfate.getFluidOrGas(9000), - WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(1800)) - .duration(3 * MINUTES + 36 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(multiblockChemicalReactorRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.AcidicMonazitePowder.get(OrePrefixes.dust, 1)) - .itemOutputs( - WerkstoffMaterialPool.MonaziteRareEarthFiltrate.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.ThoriumPhosphateCake.get(OrePrefixes.dust, 1)) - .outputChances(9000, 7000) - .duration(30 * SECONDS) - .eut(256) - .addTo(sifterRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.ThoriumPhosphateCake.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.ThoriumPhosphateConcentrate.get(OrePrefixes.dust, 1)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_MV) - .metadata(COIL_HEAT, 1500) - .addTo(blastFurnaceRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.ThoriumPhosphateConcentrate.get(OrePrefixes.dust)) - .itemOutputs(Materials.Thorium.getDust(1), Materials.Phosphate.getDust(1)) - .duration(10 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(thermalCentrifugeRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.MonaziteRareEarthFiltrate.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.NeutralizedMonaziteRareEarthFiltrate.get(OrePrefixes.dust, 1)) - .fluidInputs(WerkstoffMaterialPool.AmmoniumNitrate.getFluidOrGas(320)) - .duration(6 * SECONDS) - .eut(240) - .addTo(chemicalBathRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.NeutralizedMonaziteRareEarthFiltrate.get(OrePrefixes.dust, 1)) - .itemOutputs( - WerkstoffMaterialPool.MonaziteRareEarthHydroxideConcentrate.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.UraniumFiltrate.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.UraniumFiltrate.get(OrePrefixes.dust, 1)) - .outputChances(9000, 5000, 4000) - .duration(40 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(sifterRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.UraniumFiltrate.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.NeutralizedUraniumFiltrate.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.HydrofluoricAcid.getFluid(100)) - .duration(18 * SECONDS) - .eut(TierEU.RECIPE_MV) - .addTo(chemicalBathRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.NeutralizedUraniumFiltrate.get(OrePrefixes.dust, 1)) - .itemOutputs( - Materials.Uranium.getDust(1), - Materials.Uranium.getDust(1), - Materials.Uranium.getDust(1), - Materials.Uranium235.getDust(1), - Materials.Uranium235.getDust(1)) - .outputChances(4500, 4000, 3000, 3000, 2000) - .duration(50 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(sifterRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.MonaziteRareEarthHydroxideConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.DriedMonaziteRareEarthConcentrate.get(OrePrefixes.dust, 1)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_MV) - .metadata(COIL_HEAT, 1200) - .addTo(blastFurnaceRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.DriedMonaziteRareEarthConcentrate.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.NitricAcid.getFluid(500)) - .fluidOutputs(WerkstoffMaterialPool.NitratedRareEarthMonaziteConcentrate.getFluidOrGas(1000)) - .duration(25 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Water.getCells(1)) - .itemOutputs(Materials.Empty.getCells(1)) - .fluidInputs(WerkstoffMaterialPool.NitratedRareEarthMonaziteConcentrate.getFluidOrGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.NitricLeachedMonaziteMixture.getFluidOrGas(1000)) - .duration(10 * SECONDS) - .eut(TierEU.RECIPE_MV) - .addTo(mixerRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 3)) - .fluidInputs(WerkstoffMaterialPool.NitratedRareEarthMonaziteConcentrate.getFluidOrGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.NitricLeachedMonaziteMixture.getFluidOrGas(2000)) - .duration(11 * SECONDS) - .eut(TierEU.RECIPE_MV) - .addTo(mixerRecipes); - - GT_Values.RA.stdBuilder() - .fluidInputs(WerkstoffMaterialPool.NitricLeachedMonaziteMixture.getFluidOrGas(1000)) - .itemOutputs(WerkstoffMaterialPool.CeriumDioxide.get(OrePrefixes.dust, 1)) - .outputChances(11_11) - .fluidOutputs(WerkstoffMaterialPool.NitricMonaziteLeachedConcentrate.getFluidOrGas(1000)) - .duration(20 * SECONDS) - .eut(240) - .noOptimize() - .addTo(sifterRecipes); - - // BEGIN Cerium - // Cerium-rich mixture + 3HCl = CeCl3 + Monazite (to allow cerium processing without bastnazite/monazite) - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 15)) - .itemOutputs(WerkstoffMaterialPool.CeriumChloride.get(OrePrefixes.dust, 1), Materials.Monazite.getDust(1)) - .fluidInputs(Materials.HydrochloricAcid.getFluid(750)) - .fluidOutputs(Materials.Water.getFluid(750)) - .duration(25 * SECONDS) - .eut(450) - .addTo(UniversalChemical); - - // CeO2 + 3NH4Cl + H = 3NH3 + CeCl3 + 2H2O - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.CeriumDioxide.get(OrePrefixes.dust, 3), - WerkstoffLoader.AmmoniumChloride.get(OrePrefixes.cell, 3)) - .itemOutputs(WerkstoffMaterialPool.CeriumChloride.get(OrePrefixes.dust, 4), Materials.Ammonia.getCells(3)) - .fluidInputs(Materials.Hydrogen.getGas(1000)) - .fluidOutputs(Materials.Water.getGas(2000)) - .duration(15 * SECONDS) - .eut(450) - .addTo(UniversalChemical); - - // Ce2(C2O4)3 + 3C = Ce2O3 + 9CO - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.CeriumOxalate.get(OrePrefixes.dust, 5), Materials.Carbon.getDust(3)) - .itemOutputs(WerkstoffMaterialPool.CeriumIIIOxide.get(OrePrefixes.dust, 5)) - .fluidOutputs(Materials.CarbonMonoxide.getGas(9000)) - .duration(10 * SECONDS) - .eut(TierEU.RECIPE_HV) - .metadata(COIL_HEAT, 800) - .addTo(blastFurnaceRecipes); - - // END Cerium (NMLC) - - GT_Values.RA.stdBuilder() - .itemOutputs(WerkstoffMaterialPool.CooledMonaziteRareEarthConcentrate.get(OrePrefixes.dust, 1)) - .fluidInputs(WerkstoffMaterialPool.NitricMonaziteLeachedConcentrate.getFluidOrGas(1000)) - .duration(5 * SECONDS) - .eut(240) - .noOptimize() - .addTo(vacuumFreezerRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.CooledMonaziteRareEarthConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs( - WerkstoffMaterialPool.MonaziteRarerEarthSediment.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.EuropiumIIIOxide.get(OrePrefixes.dust, 5)) - .outputChances(9000, 500) - .duration(30 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(electroMagneticSeparatorRecipes); - - // 5Eu2O3 + Eu = 4EuO - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.EuropiumIIIOxide.get(OrePrefixes.dust, 5), Materials.Europium.getDust(1)) - .itemOutputs(WerkstoffMaterialPool.EuropiumOxide.get(OrePrefixes.dust, 6)) - .duration(15 * SECONDS) - .eut(8400) - .addTo(UniversalChemical); - - // 4 EuO = 2 Eu + 2O2 - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.EuropiumOxide.get(OrePrefixes.dust, 2)) - .itemOutputs(Materials.Europium.getDust(1)) - .fluidOutputs(Materials.Oxygen.getGas(1000L)) - .duration(15 * SECONDS) - .eut(33_000) - .addTo(electrolyzerRecipes); - - // EuS = Eu + S - // TODO old recipe. for compat only. remove material and recipe half a year later, i.e. after September 2023. - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.EuropiumSulfide.get(OrePrefixes.dust, 2)) - .itemOutputs(Materials.Europium.getDust(1), Materials.Sulfur.getDust(1)) - .duration(30 * SECONDS) - .eut(33_000) - .addTo(electrolyzerRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.MonaziteRarerEarthSediment.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.MonaziteHeterogenousHalogenicRareEarthMixture.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.Chlorine.getGas(1000)) - .duration(25 * SECONDS) - .eut(TierEU.RECIPE_HV) - .metadata(COIL_HEAT, 1200) - .addTo(blastFurnaceRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs( - Materials.Salt.getDust(1), - WerkstoffMaterialPool.MonaziteHeterogenousHalogenicRareEarthMixture.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.SaturatedMonaziteRareEarthMixture.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.Acetone.getFluid(1000)) - .duration(10 * SECONDS) - .eut(240) - .addTo(mixerRecipes); - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.MonaziteHeterogenousHalogenicRareEarthMixture.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 2)) - .itemOutputs(WerkstoffMaterialPool.SaturatedMonaziteRareEarthMixture.get(OrePrefixes.dust, 3)) - .fluidInputs(Materials.Acetone.getFluid(1000)) - .duration(20 * SECONDS) - .eut(240) - .addTo(mixerRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(4), - WerkstoffMaterialPool.SaturatedMonaziteRareEarthMixture.get(OrePrefixes.dust, 8)) - .itemOutputs(WerkstoffMaterialPool.SamaricResidue.get(OrePrefixes.dust, 6)) - .fluidOutputs(Materials.Chloromethane.getGas(800)) - .eut(TierEU.RECIPE_EV) - .duration(5 * MINUTES + 15 * SECONDS) - .addTo(centrifugeRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.SamaricResidue.get(OrePrefixes.dust, 9)) - .itemOutputs(Materials.Samarium.getDust(6), Materials.Gadolinium.getDust(3)) - .outputChances(10000, 10000) - .duration(20 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(sifterRecipes); - - // BASTNASITE (god help me) - GT_Values.RA.stdBuilder() - .fluidInputs(Materials.NitricAcid.getFluid(700)) - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Bastnasite, 2)) - .fluidOutputs(WerkstoffMaterialPool.MuddyRareEarthBastnasiteSolution.getFluidOrGas(400)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .eut(TierEU.RECIPE_EV) - .duration(400) - .metadata(COIL_HEAT, 800) - .addTo(digesterRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(1)) - .fluidInputs( - WerkstoffMaterialPool.MuddyRareEarthBastnasiteSolution.getFluidOrGas(1000), - GT_ModHandler.getSteam(1000)) - .fluidOutputs(WerkstoffMaterialPool.SteamCrackedBasnasiteSolution.getFluidOrGas(2000)) - .duration(30 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(crackingRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(6), - WerkstoffMaterialPool.SteamCrackedBasnasiteSolution.get(OrePrefixes.cell, 1)) - .itemOutputs(Materials.Empty.getCells(1)) - .fluidInputs(WerkstoffMaterialPool.SodiumFluorosilicate.getFluidOrGas(320)) - .fluidOutputs(WerkstoffMaterialPool.ConditionedBastnasiteMud.getFluidOrGas(1320)) - .duration(40 * SECONDS) - .eut(TierEU.RECIPE_MV) - .addTo(mixerRecipes); - - GT_Values.RA.stdBuilder() - .fluidInputs( - Materials.Water.getFluid(10000), - WerkstoffMaterialPool.ConditionedBastnasiteMud.getFluidOrGas(1000)) - .itemInputs(Materials.Saltpeter.getDust(1)) - .fluidOutputs(WerkstoffMaterialPool.DiltedRareEarthBastnasiteMud.getFluidOrGas(11000)) - .itemOutputs(Gangue.get(OrePrefixes.dust, 1)) - .eut(TierEU.RECIPE_EV) - .duration(1000) - .metadata(DISSOLUTION_TANK_RATIO, 10) - .noOptimize() - .addTo(dissolutionTankRecipes); - - GT_Values.RA.stdBuilder() - .itemOutputs( - Materials.SiliconDioxide.getDust(1), - Materials.Rutile.getDust(1), - WerkstoffLoader.RedZircon.get(OrePrefixes.dust, 1), - Materials.Ilmenite.getDust(1)) - .outputChances(90_00, 75_00, 10_00, 5_00) - .fluidInputs(WerkstoffMaterialPool.DiltedRareEarthBastnasiteMud.getFluidOrGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.FilteredBastnasiteMud.getFluidOrGas(400)) - .eut(240) - .duration(20 * SECONDS) - .noOptimize() - .addTo(sifterRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(1)) - .itemOutputs(WerkstoffMaterialPool.BastnasiteRareEarthOxidePowder.get(OrePrefixes.dust, 1)) - .fluidInputs(WerkstoffMaterialPool.FilteredBastnasiteMud.getFluidOrGas(1000)) - .duration(25 * SECONDS) - .eut(600) - .metadata(COIL_HEAT, 1400) - .addTo(blastFurnaceRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.BastnasiteRareEarthOxidePowder.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.LeachedBastnasiteRareEarthOxides.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.HydrochloricAcid.getFluid(500)) - .duration(10 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(chemicalBathRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(1), - WerkstoffMaterialPool.LeachedBastnasiteRareEarthOxides.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.RoastedRareEarthOxides.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.Oxygen.getGas(1000)) - .fluidOutputs(Materials.Fluorine.getGas(13)) - .duration(30 * SECONDS) - .eut(TierEU.RECIPE_MV) - .metadata(COIL_HEAT, 1200) - .addTo(blastFurnaceRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(7), - WerkstoffMaterialPool.RoastedRareEarthOxides.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.WetRareEarthOxides.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.Water.getFluid(200)) - .duration(5 * SECONDS) - .eut(TierEU.RECIPE_LV) - .addTo(mixerRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.WetRareEarthOxides.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.CeriumOxidisedRareEarthOxides.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.Fluorine.getGas(4000)) - .fluidOutputs(Materials.HydrofluoricAcid.getFluid(4000)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.CeriumOxidisedRareEarthOxides.get(OrePrefixes.dust, 1)) - .itemOutputs( - WerkstoffMaterialPool.BastnasiteRarerEarthOxides.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.CeriumDioxide.get(OrePrefixes.dust, 1)) - .outputChances(100_00, 90_00) - .eut(TierEU.RECIPE_HV) - .duration(30 * SECONDS) - .addTo(centrifugeRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.BastnasiteRarerEarthOxides.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.NitricAcid.getFluid(400)) - .fluidOutputs(WerkstoffMaterialPool.NitratedBastnasiteRarerEarthOxides.getFluidOrGas(1000)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(mixerRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.NitratedBastnasiteRarerEarthOxides.get(OrePrefixes.cell, 1)) - .itemOutputs(Materials.Empty.getCells(1)) - .fluidInputs(Materials.Acetone.getFluid(1000)) - .fluidOutputs(WerkstoffMaterialPool.SaturatedBastnasiteRarerEarthOxides.getFluidOrGas(1000)) - .duration(35 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemOutputs( - WerkstoffMaterialPool.NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.SamaricRareEarthConcentrate.get(OrePrefixes.dust, 1)) - .outputChances(80_00, 50_00) - .fluidInputs(WerkstoffMaterialPool.SaturatedBastnasiteRarerEarthOxides.getFluidOrGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.DilutedAcetone.getFluidOrGas(750)) - .eut(TierEU.RECIPE_HV) - .duration(45 * SECONDS) - .addTo(centrifugeRecipes); - - // Nd RE - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 2)) - .itemOutputs( - WerkstoffMaterialPool.LanthaniumChloride.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.NeodymiumOxide.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.HydrochloricAcid.getFluid(2000)) - .duration(45 * SECONDS) - .eut(800) - .addTo(UniversalChemical); - - // Sm RE - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.SamaricRareEarthConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.FluorinatedSamaricConcentrate.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.HydrofluoricAcid.getFluid(2000)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.SamaricRareEarthConcentrate.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.FluorinatedSamaricConcentrate.get(OrePrefixes.dust, 2)) - .fluidInputs(Materials.HydrofluoricAcid.getFluid(2000)) - .duration(17 * SECONDS + 10 * TICKS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.FluorinatedSamaricConcentrate.get(OrePrefixes.dust, 8), - Materials.Calcium.getDust(4)) - .itemOutputs( - Materials.Holmium.getDust(1), - WerkstoffMaterialPool.SamariumTerbiumMixture.get(OrePrefixes.dust, 4)) - .fluidOutputs(WerkstoffMaterialPool.CalciumFluoride.getFluidOrGas(12000)) - .duration(1 * MINUTES + 20 * TICKS) - .eut(TierEU.RECIPE_EV) - .metadata(COIL_HEAT, 1200) - .addTo(blastFurnaceRecipes); - - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.SamariumTerbiumMixture.get(OrePrefixes.dust, 1), - BotWerkstoffMaterialPool.AmmoniumNitrate.get(OrePrefixes.dust, 9)) - .itemOutputs(WerkstoffMaterialPool.NitratedSamariumTerbiumMixture.get(OrePrefixes.dust, 1)) - .duration(30 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.NitratedSamariumTerbiumMixture.get(OrePrefixes.dust, 4), - Materials.Copper.getDust(1)) - .itemOutputs( - WerkstoffMaterialPool.TerbiumNitrate.get(OrePrefixes.dust, 2), - WerkstoffMaterialPool.SamaricResidue.get(OrePrefixes.dust, 2) // Potentially make only Samarium - ) - .duration(2 * MINUTES + 40 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 2), - Materials.Calcium.getDust(3)) - .itemOutputs( - WerkstoffMaterialPool.DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 1), - Materials.TricalciumPhosphate.getDust(5)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 6)) - .itemOutputs(Materials.Samarium.getDust(1), WerkstoffLoader.Thorianit.get(OrePrefixes.dust, 2)) - .outputChances(90_00, 80_00) - .eut(TierEU.RECIPE_EV) - .duration(10 * SECONDS) - .addTo(centrifugeRecipes); - - // TODO UV Tier Ion Extracting Method - - // Lanthanum Part - // Digester to produce Lanthanum Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Lanthanum, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(LanthanumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(LanthanumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(LanthanumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - LanthanumExtractingNanoResin.getFluidOrGas(1000), - LanthanumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledLanthanumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Praseodymium Part - // Digester to produce Praseodymium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Praseodymium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(PraseodymiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(PraseodymiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(PraseodymiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - PraseodymiumExtractingNanoResin.getFluidOrGas(1000), - PraseodymiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Cerium Part - // Digester to produce Cerium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Cerium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(CeriumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(CeriumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(CeriumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs(CeriumExtractingNanoResin.getFluidOrGas(1000), CeriumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledCeriumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Neodymium Part - // Digester to produce Neodymium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Neodymium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(NeodymiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - NeodymiumExtractingNanoResin.getFluidOrGas(1000), - NeodymiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Neodymium Part - // Digester to produce Neodymium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Neodymium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(NeodymiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(NeodymiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - NeodymiumExtractingNanoResin.getFluidOrGas(1000), - NeodymiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Promethium Part - // Digester to produce Neodymium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Promethium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(PromethiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - PromethiumExtractingNanoResin.getFluidOrGas(1000), - PromethiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledPromethiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Promethium Part - // Digester to produce Promethium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Promethium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(PromethiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(PromethiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - PromethiumExtractingNanoResin.getFluidOrGas(1000), - PromethiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledPromethiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Samarium Part - // Digester to produce Samarium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Samarium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(SamariumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(SamariumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(SamariumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - SamariumExtractingNanoResin.getFluidOrGas(1000), - SamariumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledSamariumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Europium Part - // Digester to produce Europium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Europium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(EuropiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(EuropiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(EuropiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - EuropiumExtractingNanoResin.getFluidOrGas(1000), - EuropiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledEuropiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Gadolinium Part - // Digester to produce Gadolinium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Gadolinium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(GadoliniumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(GadoliniumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(GadoliniumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - GadoliniumExtractingNanoResin.getFluidOrGas(1000), - GadoliniumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Terbium Part - // Digester to produce Terbium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Terbium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(TerbiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(TerbiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(TerbiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs(TerbiumExtractingNanoResin.getFluidOrGas(1000), TerbiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledTerbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Dysprosium Part - // Digester to produce Dysprosium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Dysprosium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(DysprosiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(DysprosiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(DysprosiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - DysprosiumExtractingNanoResin.getFluidOrGas(1000), - DysprosiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Holmium Part - // Digester to produce Holmium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Holmium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(HolmiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(HolmiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(HolmiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs(HolmiumExtractingNanoResin.getFluidOrGas(1000), HolmiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledHolmiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Erbium Part - // Digester to produce Erbium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Erbium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(ErbiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(ErbiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(ErbiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs(ErbiumExtractingNanoResin.getFluidOrGas(1000), ErbiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledErbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Thulium Part - // Digester to produce Thulium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Thulium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(ThuliumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(ThuliumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(ThuliumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs(ThuliumExtractingNanoResin.getFluidOrGas(1000), ThuliumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledThuliumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Ytterbium Part - // Digester to produce Ytterbium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Ytterbium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(YtterbiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(YtterbiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(YtterbiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - YtterbiumExtractingNanoResin.getFluidOrGas(1000), - YtterbiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Lutetium Part - // Digester to produce Lutetium Chloride Concentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Lutetium, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(3)) - .fluidInputs(Materials.Chlorine.getGas(36000)) - .fluidOutputs(LutetiumChlorideConcentrate.getFluidOrGas(3000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(LutetiumOreConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(Materials.SiliconDioxide.getDust(1)) - .fluidInputs(Materials.Chlorine.getGas(12000)) - .fluidOutputs(LutetiumChlorideConcentrate.getFluidOrGas(1000)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_ZPM) - .duration(2 * SECONDS) - .addTo(digesterRecipes); - // 1B oreChlorideConcentrate = 1 ore's rare earth metal + 3 any rare earth metal - GT_Values.RA.stdBuilder() - .fluidInputs( - LutetiumExtractingNanoResin.getFluidOrGas(1000), - LutetiumChlorideConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledLutetiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Ion Extracting Process to produce Rare Earth Element (example Samarium) by Nano Resin - // Get Extracting Nano Resin - - // Lanthanum - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Lanthanum.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(LanthanumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Praseodymium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Praseodymium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(PraseodymiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Cerium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Cerium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(CeriumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Neodymium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Neodymium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(NeodymiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Promethium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Promethium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(PromethiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Sm - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Samarium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(SamariumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Europium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Europium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(EuropiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Gadolinium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Gadolinium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(GadoliniumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Terbium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Terbium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(TerbiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Dysprosium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Dysprosium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(DysprosiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Holmium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Holmium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(HolmiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Erbium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Erbium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(ErbiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Thulium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Thulium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(ThuliumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Ytterbium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Ytterbium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(YtterbiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // Lutetium - GT_Values.RA.stdBuilder() - .itemInputs( - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MysteriousCrystalLens", 0), - Materials.Lutetium.getDust(1), - Materials.Carbon.getNanite(1)) - .fluidInputs(MyMaterial.P507.getFluidOrGas(4000)) - .fluidOutputs(LutetiumExtractingNanoResin.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(10 * SECONDS) - .addTo(laserEngraverRecipes); - - // TODO Electrolyzer recycle Nano Resin and produce molten rare earth metal, - - // La - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledLanthanumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - LanthanumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Lanthanum, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Pr - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - PraseodymiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Praseodymium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Ce - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledCeriumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - CeriumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Cerium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Nd - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - NeodymiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Neodymium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Po - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledPromethiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - PromethiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Promethium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Sm - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledSamariumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - SamariumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Samarium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Eu - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledEuropiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - EuropiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Europium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Ga - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - GadoliniumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Gadolinium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Tb - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledTerbiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - TerbiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Terbium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Dy - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - DysprosiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Dysprosium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Ho - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledHolmiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - HolmiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Holmium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Er - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledErbiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - ErbiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Erbium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Tm - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledThuliumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - ThuliumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Thulium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Yb - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - YtterbiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Ytterbium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // Lu - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Empty.getCells(2)) - .fluidInputs(FilledLutetiumExtractingNanoResin.getFluidOrGas(1000)) - .itemOutputs( - LutetiumExtractingNanoResin.get(OrePrefixes.cell, 1), - GT_OreDictUnificator.get(OrePrefixes.cellMolten, Materials.Lutetium, 1)) - .fluidOutputs(Materials.Chlorine.getGas(3000)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(electrolyzerRecipes); - - // TODO ChlorinitedRareEarthConcentrate process with every 15 Rare Earth Extracting Nano Resin - - // La - GT_Values.RA.stdBuilder() - .fluidInputs( - LanthanumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledLanthanumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - LanthanumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledLanthanumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - LanthanumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledLanthanumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Pr - GT_Values.RA.stdBuilder() - .fluidInputs( - PraseodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - PraseodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - PraseodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledPraseodymiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Ce - GT_Values.RA.stdBuilder() - .fluidInputs( - CeriumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledCeriumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - CeriumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledCeriumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - CeriumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledCeriumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Nd - GT_Values.RA.stdBuilder() - .fluidInputs( - NeodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - NeodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - NeodymiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledNeodymiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Pm - GT_Values.RA.stdBuilder() - .fluidInputs( - PromethiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledPromethiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - PromethiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledPromethiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - PromethiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledPromethiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Sm - GT_Values.RA.stdBuilder() - .fluidInputs( - SamariumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledSamariumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - SamariumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledSamariumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - SamariumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledSamariumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Eu - GT_Values.RA.stdBuilder() - .fluidInputs( - EuropiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledEuropiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - EuropiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledEuropiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - EuropiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledEuropiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Ga - GT_Values.RA.stdBuilder() - .fluidInputs( - GadoliniumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - GadoliniumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - GadoliniumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledGadoliniumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Tb - GT_Values.RA.stdBuilder() - .fluidInputs( - TerbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledTerbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - TerbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledTerbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - TerbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledTerbiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Dy - GT_Values.RA.stdBuilder() - .fluidInputs( - DysprosiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - DysprosiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - DysprosiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledDysprosiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Ho - GT_Values.RA.stdBuilder() - .fluidInputs( - HolmiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledHolmiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - HolmiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledHolmiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - HolmiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledHolmiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Er - GT_Values.RA.stdBuilder() - .fluidInputs( - ErbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledErbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - ErbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledErbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - ErbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledErbiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Tm - GT_Values.RA.stdBuilder() - .fluidInputs( - ThuliumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledThuliumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - ThuliumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledThuliumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - ThuliumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledThuliumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Yb - GT_Values.RA.stdBuilder() - .fluidInputs( - YtterbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - YtterbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - YtterbiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledYtterbiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // Lu - GT_Values.RA.stdBuilder() - .fluidInputs( - LutetiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthConcentrate.getFluidOrGas(1000)) - .fluidOutputs( - FilledLutetiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - LutetiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthEnrichedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledLutetiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - GT_Values.RA.stdBuilder() - .fluidInputs( - LutetiumExtractingNanoResin.getFluidOrGas(1000), - ChlorinatedRareEarthDilutedSolution.getFluidOrGas(1000)) - .fluidOutputs( - FilledLutetiumExtractingNanoResin.getFluidOrGas(1000), - MyMaterial.wasteLiquid.getFluidOrGas(1000)) - .eut(TierEU.RECIPE_UV) - .duration(1 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // TODO Samarium Ore Concentrate Dust Processing Line Start - - // 16 SmOreDust + 200L NitricAcid =EV@10s= 800L MuddySamariumRareEarthSolution + 1 ?ThP?ConcentrateDust - GT_Values.RA.stdBuilder() - .itemInputs(SamariumOreConcentrate.get(OrePrefixes.dust, 16)) - .fluidInputs(Materials.NitricAcid.getFluid(200)) - .itemOutputs(ThoriumPhosphateConcentrate.get(OrePrefixes.dust, 1)) - .fluidOutputs(MuddySamariumRareEarthSolution.getFluidOrGas(800)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_EV) - .duration(10 * SECONDS) - .addTo(digesterRecipes); - - // 1 CrushedSamariumOre = 3 SamariumOreConcentrate in process - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Samarium, 8)) - .fluidInputs(Materials.NitricAcid.getFluid(300)) - .itemOutputs(ThoriumPhosphateConcentrate.get(OrePrefixes.dust, 3)) - .fluidOutputs(MuddySamariumRareEarthSolution.getFluidOrGas(1200)) - .metadata(COIL_HEAT, 800) - .eut(TierEU.RECIPE_EV) - .duration(10 * SECONDS) - .addTo(digesterRecipes); - - // 1B MuddySmSolution + 1B NitricAcid =EV@10s= 2B SamariumRareEarthMud + 0.8 CeriumDioxide + 0.6 - // CeriumRichMixture(CeriumOreConcentrate) - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(1)) - .fluidInputs(Materials.NitricAcid.getFluid(1000), MuddySamariumRareEarthSolution.getFluidOrGas(1000)) - .itemOutputs(CeriumDioxide.get(OrePrefixes.dust, 1), CeriumOreConcentrate.get(OrePrefixes.dust, 1)) - .fluidOutputs(SamariumRareEarthMud.getFluidOrGas(2000)) - .metadata(DISSOLUTION_TANK_RATIO, 1) - .outputChances(8000, 6000) - .noOptimize() - .eut(TierEU.RECIPE_EV) - .duration(10 * SECONDS) - .addTo(dissolutionTankRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(9)) - .fluidInputs(Materials.NitricAcid.getFluid(9000), MuddySamariumRareEarthSolution.getFluidOrGas(9000)) - .itemOutputs(CeriumDioxide.get(OrePrefixes.dust, 9), CeriumOreConcentrate.get(OrePrefixes.dust, 9)) - .fluidOutputs(SamariumRareEarthMud.getFluidOrGas(18000)) - .metadata(DISSOLUTION_TANK_RATIO, 1) - .outputChances(8000, 6000) - .noOptimize() - .eut(TierEU.RECIPE_IV) - .duration(300) - .addTo(dissolutionTankRecipes); - // Low Efficiency method in LCR - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(1)) - .fluidInputs(Materials.NitricAcid.getFluid(1000), MuddySamariumRareEarthSolution.getFluidOrGas(1000)) - .itemOutputs(CeriumDioxide.get(OrePrefixes.dust, 1)) - .fluidOutputs(SamariumRareEarthMud.getFluidOrGas(1000)) - .outputChances(5000) - .eut(TierEU.RECIPE_EV) - .duration(300) - .addTo(multiblockChemicalReactorRecipes); - - // 1B SamariumRareEarthMud + 9B water =EV@30s= 10B DilutedSamariumRareEarthSolution - // + (90% + 60%) NeodymiumREConcentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(1)) - .fluidInputs(Materials.Water.getFluid(9000), SamariumRareEarthMud.getFluidOrGas(1000)) - .itemOutputs( - NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 1), - NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 1)) - .fluidOutputs(DilutedSamariumRareEarthSolution.getFluidOrGas(10000)) - .metadata(DISSOLUTION_TANK_RATIO, 9) - .outputChances(9000, 6000) - .noOptimize() - .eut(TierEU.RECIPE_EV) - .duration(600) - .addTo(dissolutionTankRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(9)) - .fluidInputs(Materials.Water.getFluid(81000), SamariumRareEarthMud.getFluidOrGas(9000)) - .itemOutputs( - NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 9), - NeodymicRareEarthConcentrate.get(OrePrefixes.dust, 9)) - .fluidOutputs(DilutedSamariumRareEarthSolution.getFluidOrGas(90000)) - .metadata(DISSOLUTION_TANK_RATIO, 9) - .outputChances(9000, 6000) - .noOptimize() - .eut(TierEU.RECIPE_IV) - .duration(900) - .addTo(dissolutionTankRecipes); - // Low Efficiency method in LCR - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(1)) - .fluidInputs(SamariumRareEarthMud.getFluidOrGas(1000), Materials.Water.getFluid(16000)) - .fluidOutputs(DilutedSamariumRareEarthSolution.getFluidOrGas(8000)) - .eut(TierEU.RECIPE_EV) - .duration(1200) - .addTo(multiblockChemicalReactorRecipes); - - // 2B DilutedSamariumRareEarthSolution + 3B Oxalate - // =EV@10s= - // 5 ImpureSamariumOxalate + 50L MuddySamariumRareEarthSolution + 0.1*2 LepersonniteDust - // LepersonniteDust -> DephosphatedSamariumConcentrate - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.getIntegratedCircuit(13)) - .fluidInputs(DilutedSamariumRareEarthSolution.getFluidOrGas(2000), MyMaterial.oxalate.getFluidOrGas(3000)) - .itemOutputs( - SamariumOxalate.get(OrePrefixes.dust, 5), - DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 3)) - .fluidOutputs(MuddySamariumRareEarthSolution.getFluidOrGas(50)) - .outputChances(10000, 1000) - .eut(TierEU.RECIPE_EV) - .duration(10 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - // 5 ImpureSamariumOxalate + 6B HCL = 8 ImpureSamariumChloride + 6B CO - GT_Values.RA.stdBuilder() - .itemInputs(SamariumOxalate.get(OrePrefixes.dust, 5)) - .fluidInputs(Materials.HydrochloricAcid.getFluid(6000)) - .itemOutputs(SamariumChloride.get(OrePrefixes.dust, 8)) - .fluidOutputs(Materials.CarbonMonoxide.getGas(6000)) - .eut(960) - .duration(10 * SECONDS) - .addTo(multiblockChemicalReactorRecipes); - - /** - * ImpureSamariumChloride has 2 method to process 1. In IV-LuV, fix with NcCL then use electrolyzer to process - * the mixture, get Samarium dust & Chlorine & Sodium. 2. In ZPM, put molten ImpureSamariumChloride and - * LanthanumDust in Distillation Tower to get molten Samarium and impure Lanthanum Chloride. - */ - - // 2 ImpureSamariumChloride + 1 NaCl =LV@5s= 3 SamariumChlorideSodiumChlorideBlend - GT_Values.RA.stdBuilder() - .itemInputs(SamariumChloride.get(OrePrefixes.dust, 2), Materials.Salt.getDust(1)) - .itemOutputs(SamariumChlorideSodiumChlorideBlend.get(OrePrefixes.dust, 3)) - .eut(TierEU.RECIPE_LV) - .duration(5 * SECONDS) - .addTo(mixerRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(SamariumChloride.get(OrePrefixes.dust, 2), Materials.Sodium.getDust(1)) - .itemOutputs(SamariumChlorideSodiumChlorideBlend.get(OrePrefixes.dust, 3)) - .eut(TierEU.RECIPE_LV) - .duration(5 * SECONDS) - .addTo(mixerNonCellRecipes); - - // 6 SamariumChlorideSodiumChlorideBlend =IV@1s= 1 SamariumDust + 1 SodiumDust + 2/9 RarestEarthResidue + 4B - // Chlorine - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(1), - SamariumChlorideSodiumChlorideBlend.get(OrePrefixes.dust, 6)) - .itemOutputs( - Materials.Samarium.getDust(1), - Materials.Sodium.getDust(1), - RarestEarthResidue.get(OrePrefixes.dustTiny, 2)) - .fluidOutputs(Materials.Chlorine.getGas(4000)) - .eut(TierEU.RECIPE_IV) - .duration(1 * SECONDS) - .addTo(electrolyzerRecipes); - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(9), - SamariumChlorideSodiumChlorideBlend.get(OrePrefixes.dust, 54)) - .itemOutputs( - Materials.Samarium.getDust(9), - Materials.Sodium.getDust(9), - RarestEarthResidue.get(OrePrefixes.dust, 2)) - .fluidOutputs(Materials.Chlorine.getGas(36000)) - .eut(TierEU.RECIPE_LuV) - .duration(2 * SECONDS) - .addTo(electrolyzerRecipes); - - // ZPM molten distilling method - - // melt ImpureSamariumChloride - GT_Values.RA.stdBuilder() - .itemInputs(SamariumChloride.get(OrePrefixes.dust, 1)) - .fluidOutputs(SamariumChloride.getMolten(144)) - .eut(TierEU.RECIPE_EV) - .duration(24) - .addTo(fluidExtractionRecipes); - - // distill with LanthanumDust 36*144L moltenSmCl3 = 16*144L moltenSm + 27B Cl - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Lanthanum.getDust(9)) - .itemOutputs(ImpureLanthanumChloride.get(OrePrefixes.dust, 36)) - .fluidInputs(SamariumChloride.getMolten(5184)) - .fluidOutputs(Materials.Samarium.getMolten(2304)) - .eut(TierEU.RECIPE_ZPM) - .duration(5 * SECONDS) - .noOptimize() - .addTo(distillationTowerRecipes); - - // Centrifuge ImpureLanthanumChlorideDust - GT_Values.RA.stdBuilder() - .itemInputs(ImpureLanthanumChloride.get(OrePrefixes.dust, 36)) - .itemOutputs(LanthaniumChloride.get(OrePrefixes.dust, 36), RarestEarthResidue.get(OrePrefixes.dust, 5)) - .eut(TierEU.RECIPE_EV) - .duration(5 * SECONDS) - .addTo(centrifugeRecipes); - - /** - * DephosphatedSamariumConcentrate has a simple and not shit process. Just burn in furnace, then use - * electolyzer. - */ - GameRegistry.addSmelting( - DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 1), - SamariumOxide.get(OrePrefixes.dustTiny, 2), - 114); - GT_Values.RA.stdBuilder() - .itemInputs(DephosphatedSamariumConcentrate.get(OrePrefixes.dust, 1)) - .itemOutputs(SamariumOxide.get(OrePrefixes.dust, 1)) - .metadata(COIL_HEAT, 1200) - .eut(514) - .duration(2 * SECONDS) - .addTo(blastFurnaceRecipes); - - } - - public static void addRandomChemCrafting() { - - // PTMEG Elastomer - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.Butanediol.get(OrePrefixes.cell, 1)) - .itemOutputs(Materials.Empty.getCells(1)) - .fluidInputs(WerkstoffMaterialPool.TolueneTetramethylDiisocyanate.getFluidOrGas(4000)) - .fluidOutputs(WerkstoffMaterialPool.PTMEGElastomer.getMolten(4000)) - .duration(1 * MINUTES + 15 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - // Toluene Tetramethyl Diisocyanate - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.TolueneDiisocyanate.get(OrePrefixes.cell, 3), - Materials.Hydrogen.getCells(2)) - .itemOutputs(Materials.Empty.getCells(5)) - .fluidInputs(WerkstoffMaterialPool.Polytetrahydrofuran.getFluidOrGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.TolueneTetramethylDiisocyanate.getFluidOrGas(2000)) - .duration(1 * MINUTES) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - // PTHF - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.TungstophosphoricAcid.get(OrePrefixes.cell, 1), - Materials.Oxygen.getCells(1)) - .itemOutputs(Materials.Empty.getCells(2)) - .fluidInputs(WerkstoffMaterialPool.Tetrahydrofuran.getFluidOrGas(144)) - .fluidOutputs(WerkstoffMaterialPool.Polytetrahydrofuran.getFluidOrGas(432)) - .duration(50 * SECONDS) - .eut(TierEU.RECIPE_MV) - .addTo(UniversalChemical); - - // THF - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.AcidicButanediol.get(OrePrefixes.cell, 1)) - .itemOutputs(Materials.Empty.getCells(1)) - .fluidInputs(Materials.Ethanol.getFluid(1000)) - .fluidOutputs(WerkstoffMaterialPool.Tetrahydrofuran.getFluidOrGas(1000)) - .duration(40 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - // Acidicised Butanediol - GT_Values.RA.stdBuilder() - .itemInputs(Materials.SulfuricAcid.getCells(1)) - .itemOutputs(Materials.Water.getCells(1)) - .fluidInputs(WerkstoffMaterialPool.Butanediol.getFluidOrGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.AcidicButanediol.getFluidOrGas(1000)) - .duration(30 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(mixerRecipes); - - // Butanediol - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.MoTeOCatalyst.get(OrePrefixes.dustTiny, 1)) - .fluidInputs(Materials.Butane.getGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.Butanediol.getFluidOrGas(1000)) - .duration(45 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(UniversalChemical); - - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(9), - WerkstoffMaterialPool.MoTeOCatalyst.get(OrePrefixes.dust, 1)) - .fluidInputs(Materials.Butane.getGas(9000)) - .fluidOutputs(WerkstoffMaterialPool.Butanediol.getFluidOrGas(9000)) - .duration(6 * MINUTES + 45 * SECONDS) - .eut(TierEU.RECIPE_EV) - .addTo(multiblockChemicalReactorRecipes); - - // Moly-Te-Oxide Catalyst - GT_Values.RA.stdBuilder() - .itemInputs( - WerkstoffMaterialPool.MolybdenumIVOxide.get(OrePrefixes.dust, 1), - WerkstoffMaterialPool.TelluriumIVOxide.get(OrePrefixes.dust, 1)) - .itemOutputs(WerkstoffMaterialPool.MoTeOCatalyst.get(OrePrefixes.dust, 2)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_MV) - .addTo(mixerRecipes); - - // Tungstophosphoric Acid - GT_Values.RA.stdBuilder() - .itemInputs(Materials.PhosphoricAcid.getCells(1), Materials.HydrochloricAcid.getCells(24)) - .itemOutputs(Materials.Salt.getDust(24), Materials.Empty.getCells(25)) - .fluidInputs(BotWerkstoffMaterialPool.SodiumTungstate.getFluidOrGas(12000)) - .fluidOutputs(WerkstoffMaterialPool.TungstophosphoricAcid.getFluidOrGas(1000)) - .duration(25 * SECONDS) - .eut(1024) - .addTo(UniversalChemical); - - // Toluene Diisocyanate - GT_Values.RA.stdBuilder() - .itemInputs(WerkstoffMaterialPool.Diaminotoluene.get(OrePrefixes.cell, 1), Materials.Empty.getCells(3)) - .itemOutputs() - .fluidInputs(BotWerkstoffMaterialPool.Phosgene.getFluidOrGas(2000)) - .fluidOutputs(WerkstoffMaterialPool.TolueneDiisocyanate.getFluidOrGas(1000)) - .duration(45 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - // Diaminotoluene - GT_Values.RA.stdBuilder() - .itemInputs(Materials.Hydrogen.getCells(4)) - .itemOutputs() - .fluidInputs(WerkstoffMaterialPool.Dinitrotoluene.getFluidOrGas(1000)) - .fluidOutputs(WerkstoffMaterialPool.Diaminotoluene.getFluidOrGas(1000)) - .duration(15 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - // Dinitrotoluene - GT_Values.RA.stdBuilder() - .itemInputs(Materials.NitricAcid.getCells(2)) - .itemOutputs(Materials.Empty.getCells(2)) - .fluidInputs(Materials.Toluene.getFluid(1000)) - .fluidOutputs(WerkstoffMaterialPool.Dinitrotoluene.getFluidOrGas(1000)) - .duration(45 * SECONDS) - .eut(TierEU.RECIPE_HV) - .addTo(UniversalChemical); - - // Digester Control Block - GT_Values.RA.stdBuilder() - .itemInputs( - ItemList.Hull_IV.get(1L), - ItemList.Super_Tank_EV.get(2L), - ItemList.Electric_Motor_IV.get(4L), - ItemList.Electric_Pump_IV.get(4L), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Desh, 4L), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.LuV, 4L), - GT_Utility.getIntegratedCircuit(1)) - .itemOutputs(LanthItemList.DIGESTER) - .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(1440)) - .duration(30 * SECONDS) - .eut(4096) - .addTo(assemblerRecipes); - // Dissolution Tank - GT_Values.RA.stdBuilder() - .itemInputs( - ItemList.Hull_EV.get(1L), - ItemList.Super_Tank_HV.get(2L), - ItemList.Electric_Motor_EV.get(4L), - ItemList.Electric_Pump_EV.get(2L), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.VibrantAlloy, 4L), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.EV, 4L), - GT_Utility.getIntegratedCircuit(2)) - .itemOutputs(LanthItemList.DISSOLUTION_TANK) - .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(720)) - .duration(20 * SECONDS) - .eut(960) - .addTo(assemblerRecipes); - - GT_Values.RA.stdBuilder() - .fluidInputs(WerkstoffMaterialPool.DilutedAcetone.getFluidOrGas(250)) - .fluidOutputs(Materials.Acetone.getFluid(150)) - .duration(6 * SECONDS) - .eut(TierEU.RECIPE_MV) - .addTo(vacuumFreezerRecipes); - - // PTMEG Manipulation - - GT_Values.RA.stdBuilder() - .itemInputs(ItemList.Shape_Mold_Ingot.get(0L)) - .itemOutputs(WerkstoffMaterialPool.PTMEGElastomer.get(OrePrefixes.ingot, 1)) - .fluidInputs(WerkstoffMaterialPool.PTMEGElastomer.getMolten(144)) - .duration(2 * SECONDS) - .eut(64) - .addTo(fluidSolidifierRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(ItemList.Shape_Mold_Plate.get(0L)) - .itemOutputs(WerkstoffMaterialPool.PTMEGElastomer.get(OrePrefixes.plate, 1)) - .fluidInputs(WerkstoffMaterialPool.PTMEGElastomer.getMolten(144)) - .duration(2 * SECONDS) - .eut(64) - .addTo(fluidSolidifierRecipes); - - // TODO Cerium-doped Lutetium Aluminium Garnet (Ce:LuAG) - /** - * 1/9 Ce + 3 Lu + 5 Sapphire = 8 LuAG Blend 1/9 Ce + 3 Lu + 10 Green Sapphire = 8 LuAG Blend 2/9 Ce + 6 Lu + 25 - * Alumina + 9 Oxygen = 12 LuAG Blend - * - * 1 Ce + 60 Lu + 100 Sapphire = 160 LuAG Blend 1 Ce + 60 Lu +200 Green Sapphire = 160 LuAG Blend - * - */ - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(4), - Materials.Cerium.getDustTiny(1), - Materials.Lutetium.getDust(3), - Materials.Sapphire.getDust(5)) - .itemOutputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 8)) - .eut(TierEU.RECIPE_UV) - .duration(5 * SECONDS) - .addTo(mixerRecipes); - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(4), - Materials.Cerium.getDustTiny(1), - Materials.Lutetium.getDust(3), - Materials.GreenSapphire.getDust(10)) - .itemOutputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 8)) - .eut(TierEU.RECIPE_UV) - .duration(5 * SECONDS) - .addTo(mixerRecipes); - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(4), - Materials.Cerium.getDustTiny(2), - Materials.Lutetium.getDust(6), - Materials.Aluminiumoxide.getDust(25)) - .itemOutputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 12)) - .fluidInputs(Materials.Oxygen.getGas(9000)) - .eut(TierEU.RECIPE_UV) - .duration(400) - .addTo(mixerRecipes); - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(5), - Materials.Cerium.getDust(1), - Materials.Lutetium.getDust(60), - Materials.Sapphire.getDust(64), - Materials.Sapphire.getDust(36)) - .itemOutputs( - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 64), - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 64), - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 32)) - .eut(TierEU.RECIPE_UV) - .duration(1800) - .addTo(mixerRecipes); - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(5), - Materials.Cerium.getDust(1), - Materials.Lutetium.getDust(60), - Materials.GreenSapphire.getDust(64), - Materials.GreenSapphire.getDust(64), - Materials.GreenSapphire.getDust(64), - Materials.GreenSapphire.getDust(8)) - .itemOutputs( - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 64), - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 64), - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 32)) - .eut(TierEU.RECIPE_UV) - .duration(1800) - .addTo(mixerRecipes); - - // Get LuAG Crystal seed - GT_Values.RA.stdBuilder() - .itemInputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1)) - .itemOutputs(CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gem, 1)) - .fluidInputs(Materials.Lutetium.getMolten(144 * 8)) - .outputChances(514) - .eut(TierEU.RECIPE_UV) - .duration(500) - .addTo(autoclaveRecipes); - - // 1 LuAG Blend = 1.1(Og) 1.0(Xe) 0.99(Kr) LuAG in Autoclave - GT_Values.RA.stdBuilder() - .itemInputs( - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1), - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gem, 1)) - .itemOutputs( - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1), - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1)) - .fluidInputs(WerkstoffLoader.Krypton.getFluidOrGas(40)) - .outputChances(8000, 1900) - .eut(TierEU.RECIPE_UHV) - .duration(512) - .addTo(autoclaveRecipes); - GT_Values.RA.stdBuilder() - .itemInputs( - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1), - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gem, 1)) - .itemOutputs( - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1), - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1)) - .fluidInputs(WerkstoffLoader.Xenon.getFluidOrGas(25)) - .outputChances(9000, 1000) - .eut(TierEU.RECIPE_UHV) - .duration(256) - .addTo(autoclaveRecipes); - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.getIntegratedCircuit(1), - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1)) - .itemOutputs( - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1), - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1)) - .fluidInputs(WerkstoffLoader.Oganesson.getFluidOrGas(10)) - .outputChances(10000, 100) - .eut(TierEU.RECIPE_UHV) - .duration(128) - .addTo(autoclaveRecipes); - GT_Values.RA.stdBuilder() - .itemInputs( - CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1), - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gem, 1)) - .itemOutputs( - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1), - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 2)) - .fluidInputs(WerkstoffLoader.Oganesson.getFluidOrGas(10)) - .outputChances(10000, 2000) - .eut(TierEU.RECIPE_UHV) - .duration(128) - .addTo(autoclaveRecipes); - - // 1 LuAG Blend = 1 LuAG in Vacuum Furnace - GT_Values.RA.stdBuilder() - .itemInputs(CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.dust, 1)) - .itemOutputs(CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1)) - .fluidInputs(CeriumDopedLutetiumAluminiumOxygenBlend.getMolten(108)) - .metadata(COIL_HEAT, 9100) - .eut(TierEU.RECIPE_UHV) - .duration(5 * SECONDS) - .addTo(vacuumFurnaceRecipes); - GT_Values.RA.stdBuilder() - .itemInputs(CeriumDopedLutetiumAluminiumOxygenBlend.get(OrePrefixes.dust, 1)) - .fluidOutputs(CeriumDopedLutetiumAluminiumOxygenBlend.getMolten(144)) - .eut(TierEU.RECIPE_LuV) - .duration(1 * SECONDS) - .addTo(fluidExtractionRecipes); - - // 16 Adv Crystal SoC - for (ItemStack itemStack : OreDictionary.getOres("craftingLensBlue")) { - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.copyAmount(0, itemStack), - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1)) - .itemOutputs(ItemList.Circuit_Chip_CrystalSoC2.get(16)) - .requiresCleanRoom() - .eut(160000) - .duration(40 * SECONDS) - .addTo(laserEngraverRecipes); - } - - // 16 Crystal SoC - for (ItemStack itemStack : OreDictionary.getOres("craftingLensGreen")) { - GT_Values.RA.stdBuilder() - .itemInputs( - GT_Utility.copyAmount(0, itemStack), - CeriumDopedLutetiumAluminiumGarnet.get(OrePrefixes.gemExquisite, 1)) - .itemOutputs(ItemList.Circuit_Chip_CrystalSoC.get(16)) - .requiresCleanRoom() - .eut(160000) - .duration(40 * SECONDS) - .addTo(laserEngraverRecipes); - } - - } - - public static void removeCeriumMacerator() { - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - - GT_Log.out.print(Tags.MODID + ": processing macerator recipes"); - for (GT_Recipe recipe : maceratorRecipes.getAllRecipes()) { - ItemStack input = recipe.mInputs[0]; - if (!GT_Utility.isStackValid(input)) { - continue; - } - - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - final String oreName = OreDictionary.getOreName(oreDictID); - if (!(oreName.startsWith("ore") || oreName.startsWith("rawOre") || oreName.startsWith("crushed"))) { - continue; - } - - GT_Recipe tRecipe = recipe.copy(); - boolean modified = false; - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); - modified = true; - GT_Log.out.println( - "in the recipe of '" + recipe.mInputs[0].getDisplayName() - + "', replacing Cerium dust by Cerium Rich Mixture dust"); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); - modified = true; - GT_Log.out.println( - "in the recipe of '" + recipe.mInputs[0].getDisplayName() - + "', replacing Samarium dust by Samarium Ore Concentrate dust"); - } - } - if (modified) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - - } - - } - maceratorRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(maceratorRecipes::add); - maceratorRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.print(Tags.MODID + ": macerator recipes done!"); - } - - public static void removeCeriumWasher() { - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - - GT_Log.out.println(Tags.MODID + ": processing orewasher recipes"); - for (GT_Recipe recipe : oreWasherRecipes.getAllRecipes()) { - ItemStack input = recipe.mInputs[0]; - if (!GT_Utility.isStackValid(input)) { - continue; - } - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - if (!OreDictionary.getOreName(oreDictID) - .startsWith("crushed")) { - continue; - } - - GT_Recipe tRecipe = recipe.copy(); - boolean modified = false; - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input: " - + input.getDisplayName() - + " get Cerium dust turned into Cerium Rich Mixture dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input: " - + input.getDisplayName() - + " get Samarium dust turned into Samarium Ore Concentrate dust."); - modified = true; - } - } - if (modified) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - - GT_Log.out.println(Tags.MODID + ": regenerating ore washer recipes"); - oreWasherRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(oreWasherRecipes::add); - oreWasherRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println(Tags.MODID + ": ore washer recipes done!"); - } - - public static void removeCeriumThermalCentrifuge() { - - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - - GT_Log.out.println(Tags.MODID + ": processing thermal centrifuge recipes"); - for (GT_Recipe recipe : thermalCentrifugeRecipes.getAllRecipes()) { - ItemStack input = recipe.mInputs[0]; - if (!GT_Utility.isStackValid(input)) { - continue; - } - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - if (!(OreDictionary.getOreName(oreDictID) - .startsWith("crushed") - || OreDictionary.getOreName(oreDictID) - .startsWith("purified"))) { - continue; - } - - GT_Recipe tRecipe = recipe.copy(); - boolean modified = false; - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input " - + input.getDisplayName() - + " get Cerium dust turned into Cerium Rich Mixture dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input " - + input.getDisplayName() - + " get Samarium dust turned into Samarium Ore Concentrate dust."); - modified = true; - } - } - if (modified) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - - GT_Log.out.println(Tags.MODID + ": regenerating thermal centrifuge recipes"); - thermalCentrifugeRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(thermalCentrifugeRecipes::add); - thermalCentrifugeRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println(Tags.MODID + ": thermal centrifuge recipes done!"); - } - - public static void removeCeriumCentrifuge() { - - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - GT_Log.out.println(Tags.MODID + ": processing centrifuge recipes"); - for (GT_Recipe recipe : centrifugeRecipes.getAllRecipes()) { - ItemStack input = null; - if (recipe.mInputs.length > 0) input = recipe.mInputs[0]; - if (!GT_Utility.isStackValid(input)) { - continue; - } - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - final String oreName = OreDictionary.getOreName(oreDictID); - if (!(oreName.startsWith("dust") && (!oreName.contains("Dephosphated")))) { - continue; - } - GT_Recipe tRecipe = recipe.copy(); - boolean modified = false; - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustTiny, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium tiny dust turned into Cerium Rich Mixture tiny dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium dust turned into Cerium Rich Mixture dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustSmall(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustSmall, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium small dust turned into Cerium Rich Mixture small dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustTiny, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium dust turned into Samarium Ore Concentrate tiny dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium dust turned into Samarium Ore Concentrate dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustSmall(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustSmall, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium dust turned into Samarium Ore Concentrate small dust."); - modified = true; - } - } - if (modified) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - - GT_Log.out.println(Tags.MODID + ": regenerating centrifuge recipes"); - centrifugeRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(centrifugeRecipes::add); - centrifugeRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println(Tags.MODID + ": centrifuge recipes done!"); - } - - public static void removeCeriumCentrifugeNonCell() { - - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - GT_Log.out.println(Tags.MODID + ": processing centrifuge non cell recipes"); - - for (GT_Recipe recipe : centrifugeNonCellRecipes.getAllRecipes()) { - ItemStack input = null; - if (recipe.mInputs.length > 0) input = recipe.mInputs[0]; - if (!GT_Utility.isStackValid(input)) { - continue; - } - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - final String oreName = OreDictionary.getOreName(oreDictID); - if (!((oreName.startsWith("dust") && (!oreName.contains("Dephosphated"))))) { - continue; - } - GT_Recipe tRecipe = recipe.copy(); - boolean modified = false; - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustTiny, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium tiny dust turned into Cerium Rich Mixture tiny dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium dust turned into Cerium Rich Mixture dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDustSmall(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dustSmall, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium small dust turned into Cerium Rich Mixture small dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustTiny(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustTiny, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium tiny dust turned into Samarium Ore Concentrate tiny dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium dust turned into Samarium Ore Concentrate dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDustSmall(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dustSmall, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium small dust turned into Samarium Ore Concentrate small dust."); - modified = true; - } - } - if (modified) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - - GT_Log.out.println(Tags.MODID + ": regenerating centrifuge non cell recipes"); - centrifugeNonCellRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(centrifugeNonCellRecipes::add); - centrifugeNonCellRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println(Tags.MODID + ": centrifuge non cell recipes done!"); - } - - public static void removeCeriumHammer() { - - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - - GT_Log.out.println(Tags.MODID + ": processing forge hammer recipes"); - - for (GT_Recipe recipe : hammerRecipes.getAllRecipes()) { - ItemStack input = recipe.mInputs[0]; - if (!GT_Utility.isStackValid(input)) { - continue; - } - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - final String oreName = OreDictionary.getOreName(oreDictID); - if (!oreName.startsWith("crushed")) { - continue; - } - - GT_Recipe tRecipe = recipe.copy(); - boolean modified = false; - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium dust turned into Cerium Rich Mixture dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize * 2, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium dust turned into Samarium Ore Concentrate dust."); - modified = true; - } - } - if (modified) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - - GT_Log.out.println(Tags.MODID + ": regenerating forge hammer recipes"); - hammerRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(hammerRecipes::add); - hammerRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println(Tags.MODID + ": forge hammer recipes done!"); - } - - public static void removeCeriumElectrolyzer() { - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - GT_Log.out.println(Tags.MODID + ": Processing electrolyzer recipes"); - for (GT_Recipe recipe : electrolyzerRecipes.getAllRecipes()) { - for (ItemStack input : recipe.mInputs) { - if (!GT_Utility.isStackValid(input)) { - continue; - } - - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - final String oreName = OreDictionary.getOreName(oreDictID); - if (!(oreName.startsWith("dust") - && (oreName.equals("dustHibonite") || oreName.equals("dustLanthaniteCe") - || oreName.equals("dustZirconolite") - || oreName.equals("dustYttrocerite") - || oreName.equals("dustXenotime") - || oreName.equals("dustBastnasite") - || oreName.equals("dustFlorencite")))) { - continue; - } - - GT_Recipe tRecipe = recipe.copy(); - boolean modified = false; - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium dust turned into Cerium Rich Mixture dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium dust turned into Samarium Ore Concentrate dust."); - modified = true; - } - } - if (modified) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - } - - GT_Log.out.println(Tags.MODID + ": regenerating electrolyzer recipes"); - electrolyzerRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(electrolyzerRecipes::add); - electrolyzerRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println(Tags.MODID + ": Electrolyzer recipe done!"); - } - - public static void removeCeriumElectrolyzerNonCell() { - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - GT_Log.out.println(Tags.MODID + ": processing electrolyzer non cell recipes"); - for (GT_Recipe recipe : electrolyzerNonCellRecipes.getAllRecipes()) { - for (ItemStack input : recipe.mInputs) { - if (!GT_Utility.isStackValid(input)) { - continue; - } - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - final String oreName = OreDictionary.getOreName(oreDictID); - if (!(oreName.startsWith("dust") - && (oreName.equals("dustHibonite") || oreName.equals("dustLanthaniteCe") - || oreName.equals("dustZirconolite") - || oreName.equals("dustYttrocerite") - || oreName.equals("dustXenotime") - || oreName.equals("dustBastnasite") - || oreName.equals("dustFlorencite")))) { - continue; - } - - GT_Recipe tRecipe = recipe.copy(); - boolean modified = false; - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium dust turned into Cerium Rich Mixture dust."); - modified = true; - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium dust turned into Samarium Ore Concentrate dust."); - modified = true; - } - } - if (modified) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - } - - GT_Log.out.println(Tags.MODID + ": regenerating electrolyzer non cell recipes"); - electrolyzerNonCellRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(electrolyzerNonCellRecipes::add); - electrolyzerNonCellRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println(Tags.MODID + ": Electrolyzer non cell recipes done!"); - } - - public static void removeCeriumSimpleWasher() { - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - GT_Log.out.println(Tags.MODID + ": processing simple washer recipes."); - for (GT_Recipe recipe : simpleWasherRecipes.getAllRecipes()) { - ItemStack input = recipe.mInputs[0]; - if (!GT_Utility.isStackValid(input)) { - continue; - } - - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - final String oreName = OreDictionary.getOreName(oreDictID); - - if (!(oreName.startsWith("dustImpureCerium") || oreName.startsWith("dustImpureSamarium") - || oreName.startsWith("dustPureSamarium") - || oreName.startsWith("dustPureCerium"))) { - continue; - } - - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize, - WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium dust turned into Cerium Rich Mixture dust."); - } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Samarium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize, - WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 1)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Samarium dust turned into Samarium Ore Concentrate dust."); - } - } - if (!tRecipe.equals(recipe)) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - } - } - - GT_Log.out.println(Tags.MODID + ": regenerating simple washer recipes"); - simpleWasherRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(simpleWasherRecipes::add); - simpleWasherRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println(Tags.MODID + ": Simple washer recipes done!"); - } - - public static void removeCeriumDehydrator() { - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - GT_Log.out.println(Tags.MODID + ": processing chemical dehydrator recipes."); - - for (GT_Recipe recipe : chemicalDehydratorRecipes.getAllRecipes()) { - if (recipe.mInputs.length == 0) { - continue; - } - ItemStack input = recipe.mInputs[0]; - - if (!GT_Utility.isStackValid(input)) { - continue; - } - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - final String oreName = OreDictionary.getOreName(oreDictID); - if (!oreName.startsWith("dust")) { - continue; - } - if (!(oreName.equals("dustCerite") || oreName.equals("dustFluorcaphite") - || oreName.equals("dustZirkelite") - || oreName.equals("dustGadoliniteCe") - || oreName.equals("dustGadoliniteY") - || oreName.equals("dustPolycrase") - || oreName.equals("dustBastnasite"))) { - continue; - } - - GT_Recipe tRecipe = recipe.copy(); - for (int i = 0; i < tRecipe.mOutputs.length; i++) { - if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue; - - if (tRecipe.mOutputs[i].isItemEqual(Materials.Cerium.getDust(1))) { - tRecipe.mOutputs[i] = GT_Utility.copyAmount( - tRecipe.mOutputs[i].stackSize, - WerkstoffMaterialPool.CeriumRichMixture - .get(OrePrefixes.dust, tRecipe.mOutputs[i].stackSize)); - GT_Log.out.println( - Tags.MODID + ": recipe with input oredict: " - + oreName - + " get Cerium dust turned into Cerium Rich Mixture dust."); - } - } - if (!tRecipe.equals(recipe)) { - reAdd.add(tRecipe); - remove.add(recipe); - } - break; - - } - - } - - GT_Log.out.println(Tags.MODID + ": regenerating chemical dehydrator recipes"); - chemicalDehydratorRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(chemicalDehydratorRecipes::add); - chemicalDehydratorRecipes.getBackend() - .reInit(); - - GT_Log.out.print(Tags.MODID + ": Replace " + remove.size() + "! "); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println(Tags.MODID + ": chemical dehydrator recipes done!"); - - } - - public static void removeCeriumChemicalBath() { - HashSet<GT_Recipe> remove = new HashSet<>(5000); - HashSet<GT_Recipe> reAdd = new HashSet<>(5000); - - GT_Log.out.println(Tags.MODID + ": marking recipes in chem bath for removal!"); - for (GT_Recipe recipe : chemicalBathRecipes.getAllRecipes()) { - for (ItemStack input : recipe.mInputs) { - if (!GT_Utility.isStackValid(input)) { - continue; - } - int[] oreDict = OreDictionary.getOreIDs(input); - for (int oreDictID : oreDict) { - String oreName = OreDictionary.getOreName(oreDictID); - if (oreName.equals("dustTin")) { - GT_Log.out.println(Tags.MODID + ": chem bath recipe with tin dust detected, removing it."); - remove.add(recipe); - break; - } - if (oreName.equals("dustRutile")) { - GT_Log.out.println(Tags.MODID + ": chem bath recipe with rutile dust detected, removing it."); - remove.add(recipe); - break; - } - } - } - } - - GT_Log.out.println(Tags.MODID + ": regenerating chem bath recipes"); - chemicalBathRecipes.getBackend() - .removeRecipes(remove); - reAdd.forEach(chemicalBathRecipes::add); - chemicalBathRecipes.getBackend() - .reInit(); - - remove.clear(); - reAdd.clear(); - - GT_Log.out.println("Chemical Bath done!"); - } - - public static void removeCeriumSources() { - - removeCeriumMacerator(); - removeCeriumWasher(); - removeCeriumThermalCentrifuge(); - removeCeriumCentrifuge(); - removeCeriumCentrifugeNonCell(); - removeCeriumHammer(); - removeCeriumElectrolyzer(); - removeCeriumElectrolyzerNonCell(); - removeCeriumSimpleWasher(); - removeCeriumDehydrator(); - removeCeriumChemicalBath(); - - // For Cauldron Wash - GT_Log.out.println(Tags.MODID + ": processing cauldron washing recipes to replace cerium sources"); - registerCauldronCleaningFor(Materials.Cerium, WerkstoffMaterialPool.CeriumRichMixture.getBridgeMaterial()); - registerCauldronCleaningFor( - Materials.Samarium, - WerkstoffMaterialPool.SamariumOreConcentrate.getBridgeMaterial()); - GT_Log.out.println(Tags.MODID + ": processing cauldron washing recipes done!"); - - // For Crafting Table - GT_Log.out.println(Tags.MODID + ": processing crafting recipes to replace cerium sources"); - CraftingManager.getInstance() - .getRecipeList() - .forEach(RecipeLoader::replaceInCraftTable); - GT_Log.out.println(Tags.MODID + ": processing crafting recipes done!"); - } - - public static void replaceInCraftTable(Object obj) { - IRecipe recipe = (IRecipe) obj; - ItemStack result = recipe.getRecipeOutput(); - if (!(recipe instanceof IRecipeMutableAccess mutableRecipe)) { - return; - } - - Object input = mutableRecipe.gt5u$getRecipeInputs(); - - if (GT_Utility.areStacksEqual(result, Materials.Cerium.getDust(1), true)) { - if (PlatinumSludgeOverHaul.checkRecipe(input, Materials.Cerium)) { - return; - } - GT_Log.out.println("replacing crafting recipe of Cerium dust by Cerium Rich Mixture"); - mutableRecipe.gt5u$setRecipeOutputItem(WerkstoffMaterialPool.CeriumRichMixture.get(OrePrefixes.dust, 2)); - } else if (GT_Utility.areStacksEqual(result, Materials.Samarium.getDust(1), true)) { - if (PlatinumSludgeOverHaul.checkRecipe(input, Materials.Samarium)) { - return; - } - mutableRecipe - .gt5u$setRecipeOutputItem(WerkstoffMaterialPool.SamariumOreConcentrate.get(OrePrefixes.dust, 2)); - GT_Log.out.println("replacing crafting recipe of Samarium dust by Samarium Ore Concentrate"); - } - } - -} diff --git a/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java b/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java deleted file mode 100644 index 52ab4f15d1..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java +++ /dev/null @@ -1,409 +0,0 @@ -package com.elisis.gtnhlanth.loader; - -import static gregtech.api.enums.OrePrefixes.*; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.function.Consumer; -import java.util.function.Predicate; - -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.IRecipe; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; - -import org.apache.commons.lang3.reflect.FieldUtils; -import org.apache.commons.lang3.reflect.MethodUtils; - -import com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool; -import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; -import com.github.bartimaeusnek.bartworks.util.BW_Util; - -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.Mods; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.objects.ItemData; -import gregtech.api.recipe.RecipeMap; -import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Recipe.GT_Recipe_AssemblyLine; -import gregtech.api.util.GT_Shaped_Recipe; -import gregtech.api.util.GT_Utility; - -public class ZPMRubberChanges implements Runnable { - - @SuppressWarnings("unchecked") - public void run() { - - List<IRecipe> bufferedRecipeList = null; - - try { - bufferedRecipeList = (List<IRecipe>) FieldUtils - .getDeclaredField(GT_ModHandler.class, "sBufferRecipeList", true) - .get(null); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - - HashSet<ItemStack> ZPMPlusComponents = new HashSet<>(); - OrePrefixes[] RubberGenerated = { plate }; - - Arrays.stream(ItemList.values()) - .filter( - item -> (item.toString() - .contains("ZPM") - || item.toString() - .contains("UV") - || item.toString() - .contains("UHV") - || item.toString() - .contains("UEV")) - && item.hasBeenSet()) - .forEach(item -> ZPMPlusComponents.add(item.get(1))); - - if (Mods.NewHorizonsCoreMod.isModLoaded()) { - addDreamcraftItemListItems(ZPMPlusComponents); - } - - for (ItemStack component : ZPMPlusComponents) { - GT_Log.out.print(component.getDisplayName() + " "); - } - - replaceAllRecipes(ZPMPlusComponents, RubberGenerated, bufferedRecipeList); - } - - private static void replaceAllRecipes(Collection<ItemStack> ZPMPlusComponents, OrePrefixes[] RubberGenerated, - List<IRecipe> bufferedRecipeList) { - - for (GT_Recipe_AssemblyLine sAssemblylineRecipe : GT_Recipe_AssemblyLine.sAssemblylineRecipes) { - for (ItemStack stack : ZPMPlusComponents) { - rewriteAsslineRecipes(stack, RubberGenerated, sAssemblylineRecipe); - } - } - - for (RecipeMap<?> map : RecipeMap.ALL_RECIPE_MAPS.values()) { - for (GT_Recipe recipe : map.getAllRecipes()) { - for (ItemStack stack : ZPMPlusComponents) { - rewriteMachineRecipes(stack, RubberGenerated, recipe); - } - } - } - - for (ItemStack stack : ZPMPlusComponents) { - Predicate recipeFilter = obj -> obj instanceof GT_Shaped_Recipe - && GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true); - rewriteCraftingRecipes(bufferedRecipeList, RubberGenerated, recipeFilter); - } - /* - * for (ItemStack stack : LuVMachines) { Predicate recipeFilter = obj -> obj instanceof GT_Shaped_Recipe && - * GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true); - * rewriteCraftingRecipes(bufferedRecipeList, LuVMaterialsGenerated, recipeFilter); } - */ - } - - private static void addDreamcraftItemListItems(Collection ZPMPlusComponents) { - try { - Class customItemListClass = Class.forName("com.dreammaster.gthandler.CustomItemList"); - Method hasnotBeenSet = MethodUtils.getAccessibleMethod(customItemListClass, "hasBeenSet"); - Method get = MethodUtils.getAccessibleMethod(customItemListClass, "get", long.class, Object[].class); - for (Enum customItemList : (Enum[]) FieldUtils.getField(customItemListClass, "$VALUES", true) - .get(null)) { - if ((customItemList.toString() - .contains("ZPM") - || customItemList.toString() - .contains("UV") - || customItemList.toString() - .contains("UHV") - || customItemList.toString() - .contains("UEV")) - && (boolean) hasnotBeenSet.invoke(customItemList)) - ZPMPlusComponents.add((ItemStack) get.invoke(customItemList, 1, new Object[0])); - } - } catch (IllegalAccessException | ClassNotFoundException | InvocationTargetException e) { - e.printStackTrace(); - } - } - - private static void rewriteCraftingRecipes(List<IRecipe> bufferedRecipeList, OrePrefixes[] RubberGenerated, - Predicate recipeFilter) { - for (OrePrefixes prefixes : RubberGenerated) { - - Consumer recipeAction = (obj) -> { - ZPMRubberChanges.doStacksCointainAndReplace( - ((GT_Shaped_Recipe) obj).getInput(), - GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - ZPMRubberChanges.doStacksCointainAndReplace( - ((GT_Shaped_Recipe) obj).getInput(), - GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - }; - - /* - * || ZPMRubberChanges.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(), - * GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), true, - * WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - */ - - CraftingManager.getInstance() - .getRecipeList() - .stream() - .filter(recipeFilter) - .forEach(recipeAction); - bufferedRecipeList.stream() - .filter(recipeFilter) - .forEach(recipeAction); - } - } - - private static void rewriteMachineRecipes(ItemStack stack, OrePrefixes[] RubberGenerated, GT_Recipe recipe) { - if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mInputs, stack, false)) { - for (OrePrefixes prefixes : RubberGenerated) { - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mInputs, - GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mOutputs, - GT_OreDictUnificator.get(prefixes, Materials.Silicon, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mInputs, - GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mOutputs, - GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - } - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidInputs, - Materials.Silicone.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidOutputs, - Materials.Silicone.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidInputs, - Materials.StyreneButadieneRubber.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidOutputs, - Materials.StyreneButadieneRubber.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - } - if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) { - for (OrePrefixes prefixes : RubberGenerated) { - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mInputs, - GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mOutputs, - GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mInputs, - GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mOutputs, - GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - } - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidInputs, - Materials.Silicone.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidOutputs, - Materials.Silicone.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidInputs, - Materials.StyreneButadieneRubber.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidOutputs, - Materials.StyreneButadieneRubber.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - } - } - - private static void rewriteAsslineRecipes(ItemStack stack, OrePrefixes[] RubberGenerated, - GT_Recipe.GT_Recipe_AssemblyLine recipe) { - for (OrePrefixes prefixes : RubberGenerated) { - if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mInputs, stack, false)) { - - GT_Log.out.print(Arrays.toString(recipe.mInputs)); - - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mInputs, - GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - ZPMRubberChanges.doStacksCointainAndReplace( - new Object[] { recipe.mOutput }, - GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mInputs, - GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - ZPMRubberChanges.doStacksCointainAndReplace( - new Object[] { recipe.mOutput }, - GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - } - if (ZPMRubberChanges.doStacksCointainAndReplace(new Object[] { recipe.mOutput }, stack, false)) { - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mInputs, - GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - ZPMRubberChanges.doStacksCointainAndReplace( - new Object[] { recipe.mOutput }, - GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mInputs, - GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - ZPMRubberChanges.doStacksCointainAndReplace( - new Object[] { recipe.mOutput }, - GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), - true, - WerkstoffMaterialPool.PTMEGElastomer.get(prefixes)); - } - } - if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mInputs, stack, false)) { - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidInputs, - Materials.Silicone.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidInputs, - Materials.StyreneButadieneRubber.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - } - if (ZPMRubberChanges.doStacksCointainAndReplace(new Object[] { recipe.mOutput }, stack, false)) { - ZPMRubberChanges.doStacksCointainAndReplace( - recipe.mFluidInputs, - Materials.StyreneButadieneRubber.getMolten(1), - true, - WerkstoffMaterialPool.PTMEGElastomer.getMolten(1) - .getFluid()); - } - } - - private static ItemStack[] replaceArrayWith(ItemStack[] stackArray, Materials source, Werkstoff target) { - for (int i = 0; i < stackArray.length; i++) { - ItemStack stack = stackArray[i]; - if (!BW_Util.checkStackAndPrefix(stack)) continue; - stackArray[i] = replaceStackWith(stack, source, target); - } - return stackArray; - } - - private static ItemStack replaceStackWith(ItemStack stack, Materials source, Werkstoff target) { - ItemData ass = GT_OreDictUnificator.getAssociation(stack); - if (ass.mMaterial.mMaterial.equals(source)) - if (target.hasItemType(ass.mPrefix)) stack = target.get(ass.mPrefix, stack.stackSize); - return stack; - } - - private static boolean doStacksCointainAndReplace(FluidStack[] stacks, FluidStack stack, boolean replace, - Fluid... replacement) { - boolean replaced = false; - for (int i = 0; i < stacks.length; i++) { - if (GT_Utility.areFluidsEqual(stack, stacks[i])) if (!replace) return true; - else { - int amount = stacks[i].amount; - stacks[i] = new FluidStack(replacement[0], amount); - replaced = true; - } - } - return replaced; - } - - private static boolean doStacksCointainAndReplace(Object[] stacks, ItemStack stack, boolean replace, - ItemStack... replacement) { - // GT_Log.out.print("In doStacksCointainAndReplace!\n"); - boolean replaced = false; - for (int i = 0; i < stacks.length; i++) { - if (!GT_Utility.isStackValid(stacks[i])) { - if (stacks[i] instanceof ArrayList && ((ArrayList) stacks[i]).size() > 0) { - if (GT_Utility.areStacksEqual(stack, (ItemStack) ((ArrayList) stacks[i]).get(0), true)) - if (!replace) return true; - else { - int amount = ((ItemStack) ((ArrayList) stacks[i]).get(0)).stackSize; - stacks[i] = new ArrayList<>(); - ((ArrayList) stacks[i]).add(BW_Util.setStackSize(replacement[0], amount)); - replaced = true; - - GT_Log.out.print("Replaced recipe!: " + stack.getDisplayName() + " "); - } - - } else continue; - } else if (GT_Utility.areStacksEqual(stack, (ItemStack) stacks[i], true)) if (!replace) return true; - else { - int amount = ((ItemStack) stacks[i]).stackSize; - stacks[i] = BW_Util.setStackSize(replacement[0], amount); - replaced = true; - } - } - return replaced; - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/util/DescTextLocalization.java b/src/main/java/com/elisis/gtnhlanth/util/DescTextLocalization.java deleted file mode 100644 index f0c5509d59..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/util/DescTextLocalization.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.elisis.gtnhlanth.util; - -import net.minecraft.util.StatCollector; - -public class DescTextLocalization { - - public static final String BLUEPRINT_INFO = StatCollector.translateToLocal("gtnhlanth.tt.blueprint"); - - public static final String BEAMLINE_SCANNER_INFO = StatCollector.translateToLocal("gtnhlanth.tt.beaminfo"); - - public static String[] addText(String preFix, int length) { - String[] text = new String[length]; - for (int i = 0; i < length; i++) { - text[i] = StatCollector.translateToLocal(preFix + "." + i); - } - return text; - } - - public static String addDotText(int dotNum) { - - return StatCollector.translateToLocalFormatted("gtnhlanth.tt.hintdot", dotNum + ""); - - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/util/Util.java b/src/main/java/com/elisis/gtnhlanth/util/Util.java deleted file mode 100644 index 1a42396de0..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/util/Util.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.elisis.gtnhlanth.util; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; - -import com.gtnewhorizons.modularui.api.math.Pos2d; - -public class Util { - - public static void depleteDurabilityOfStack(ItemStack stack, int damage) { - - if (stack == null) return; - - if (stack.stackSize == 0) // Might happen, who knows - return; - - if (damage + stack.getItemDamage() > stack.getMaxDamage()) { - stack.stackSize--; - } else { - - stack.setItemDamage(stack.getItemDamage() + damage); - - } - - } - - public static List<Pos2d> getGridPositions(int totalCount, int xOrigin, int yOrigin, int xDirMaxCount, - int yDirMaxCount, int distanceBetweenSlots) { - // 18 pixels to get to a new grid for placing an item tile since they are 16x16 and have 1 pixel buffers - // around them. - - int distance = 18 + distanceBetweenSlots; - - List<Pos2d> results = new ArrayList<>(); - int count = 0; - loop: for (int j = 0; j < yDirMaxCount; j++) { - for (int i = 0; i < xDirMaxCount; i++) { - if (count >= totalCount) break loop; - results.add(new Pos2d(xOrigin + i * distance, yOrigin + j * distance)); - count++; - } - } - return results; - } - - public static boolean coolantFluidCheck(FluidStack inStack, int fluidToConsume) { - return (inStack.amount < fluidToConsume - || (!inStack.isFluidEqual(FluidRegistry.getFluidStack("ic2coolant", 1)) && inStack.getFluid() - .getTemperature() > 200)); - } -} diff --git a/src/main/java/com/elisis/gtnhlanth/xmod/nei/NEI_Config.java b/src/main/java/com/elisis/gtnhlanth/xmod/nei/NEI_Config.java deleted file mode 100644 index 0ed71e712f..0000000000 --- a/src/main/java/com/elisis/gtnhlanth/xmod/nei/NEI_Config.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.elisis.gtnhlanth.xmod.nei; - -import com.elisis.gtnhlanth.Tags; - -import codechicken.nei.api.IConfigureNEI; - -public class NEI_Config implements IConfigureNEI { - - public static boolean isAdded = true; - - @Override - public String getName() { - return "GTNH: Lanthanides NEI"; - } - - @Override - public String getVersion() { - return Tags.VERSION; - } - - @Override - public void loadConfig() { - isAdded = false; - - isAdded = true; - } -} |