aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java')
-rw-r--r--src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java146
1 files changed, 146 insertions, 0 deletions
diff --git a/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java b/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java
new file mode 100644
index 0000000000..bf2b7ecebd
--- /dev/null
+++ b/src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java
@@ -0,0 +1,146 @@
+package gregtech.loaders.postload.chains;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+public class GT_NaniteChain {
+
+ public static void run() {
+
+ ItemStack aUVTierLens = GT_ModHandler.getModItem("dreamcraft", "item.MysteriousCrystalLens", 0);
+ ItemStack aUHVTierLens = GT_ModHandler.getModItem("dreamcraft", "item.ChromaticLens", 0);
+ ItemStack aUEVTierLens = GT_ModHandler.getModItem("dreamcraft", "item.RadoxPolymerLens", 0);
+ ItemStack aUIVTierLens = ItemList.EnergisedTesseract.get(0);
+ ItemStack aUMVTierLens = GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Dilithium, 0, false);
+
+ // Carbon Nanite Recipe Before Nano Forge
+ Fluid solderIndalloy = FluidRegistry.getFluid("molten.indalloy140") != null
+ ? FluidRegistry.getFluid("molten.indalloy140")
+ : FluidRegistry.getFluid("molten.solderingalloy");
+
+ GT_Values.RA.addAssemblylineRecipe(
+ Materials.Carbon.getNanite(1),
+ 3600 * 20,
+ new Object[] {
+ ItemList.Hull_UV.get(16),
+ Materials.Carbon.getNanite(16),
+ ItemList.Field_Generator_ZPM.get(16),
+ ItemList.Conveyor_Module_UV.get(16),
+ ItemList.Electric_Motor_UV.get(32),
+ new Object[] {OrePrefixes.circuit.get(Materials.Master), 16},
+ GT_OreDictUnificator.get(OrePrefixes.wireGt08, Materials.Naquadah, 32)
+ },
+ new FluidStack[] {
+ new FluidStack(solderIndalloy, 144 * 32),
+ Materials.HSSS.getMolten(144L * 32),
+ Materials.Osmiridium.getMolten(144L * 16)
+ },
+ ItemList.NanoForge.get(1),
+ 2400 * 20,
+ (int) GT_Values.VP[7]);
+
+ GT_Values.RA.addAssemblylineRecipe(
+ ItemList.Circuit_Crystalmainframe.get(1),
+ 144000,
+ new Object[] {
+ new Object[] {OrePrefixes.circuit.get(Materials.SuperconductorUHV), 16},
+ ItemList.Robot_Arm_UV.get(16),
+ ItemList.Circuit_Chip_Stemcell.get(32),
+ GT_OreDictUnificator.get(OrePrefixes.ring, Materials.NaquadahAlloy, 32),
+ GT_OreDictUnificator.get(OrePrefixes.stick, Materials.NaquadahAlloy, 16),
+ Materials.Carbon.getDust(64)
+ },
+ new FluidStack[] {Materials.UUMatter.getFluid(10000), new FluidStack(solderIndalloy, 144 * 32)},
+ Materials.Carbon.getNanite(2),
+ 50 * 20,
+ (int) GT_Values.VP[8]);
+
+ /*
+ * General Rules for making nanite recipes:
+ * 1. Never make a nanite that takes a long time to make and only gives 1, just to be consumed.
+ * 2. Nanites meant to be consumed should either have a short duration or a big output.
+ * 3. Nanites which aren't consumed should have a long duration and output less than 16.
+ * 4. Nanites should always take UUM as a fluid and a lot of power to make.
+ */
+
+ // Carbon Nanites - Used to make more Nano Forge Controllers
+ GT_Values.RA.addNanoForgeRecipe(
+ new ItemStack[] {
+ aUVTierLens,
+ GT_ModHandler.getModItem("bartworks", "bw.werkstoffblockscasingadvanced.01", 8, 31776),
+ ItemList.Circuit_Chip_SoC.get(64)
+ },
+ new FluidStack[] {Materials.UUMatter.getFluid(200000)},
+ new ItemStack[] {
+ Materials.Carbon.getNanite(64),
+ },
+ null,
+ null,
+ 500 * 20,
+ 10000000,
+ 1);
+
+ // Silver Nanites - Used in Tier 2 PCB Factory to improve board production
+ GT_Values.RA.addNanoForgeRecipe(
+ new ItemStack[] {aUHVTierLens, Materials.Silver.getBlocks(8), ItemList.Circuit_Chip_SoC.get(16)},
+ new FluidStack[] {Materials.UUMatter.getFluid(200000)},
+ new ItemStack[] {Materials.Silver.getNanite(1)},
+ null,
+ null,
+ 750 * 20,
+ 10000000,
+ 2);
+
+ // Neutronium Nanites - Used to upgrade the Nano Forge to Tier 2
+ GT_Values.RA.addNanoForgeRecipe(
+ new ItemStack[] {
+ aUEVTierLens,
+ Materials.Neutronium.getBlocks(8),
+ ItemList.Circuit_Chip_SoC2.get(64),
+ ItemList.Circuit_Chip_SoC2.get(32)
+ },
+ new FluidStack[] {Materials.UUMatter.getFluid(200000)},
+ new ItemStack[] {Materials.Neutronium.getNanite(1)},
+ null,
+ null,
+ 100 * 20,
+ 100000000,
+ 1);
+
+ // Gold Nanites - Used in Tier 3 PCB Factory to improve board production
+ GT_Values.RA.addNanoForgeRecipe(
+ new ItemStack[] {aUIVTierLens, Materials.Gold.getBlocks(8), ItemList.Circuit_Chip_SoC.get(16)},
+ new FluidStack[] {Materials.UUMatter.getFluid(300000)},
+ new ItemStack[] {Materials.Gold.getNanite(1)},
+ null,
+ null,
+ 1000 * 20,
+ 100000000,
+ 3);
+
+ // Transcendent Metal Nanites - Used to upgrade the Nano Forge to Tier 3
+ GT_Values.RA.addNanoForgeRecipe(
+ new ItemStack[] {
+ aUMVTierLens,
+ Materials.TranscendentMetal.getBlocks(8),
+ ItemList.Circuit_Chip_SoC2.get(64),
+ ItemList.Circuit_Chip_SoC2.get(64),
+ ItemList.Circuit_Chip_SoC2.get(64)
+ },
+ new FluidStack[] {Materials.UUMatter.getFluid(2000000)},
+ new ItemStack[] {Materials.TranscendentMetal.getNanite(1)},
+ null,
+ null,
+ 750 * 20,
+ 1000000000,
+ 2);
+ }
+}