package gregtech.loaders.postload.recipes; import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; import static gregtech.api.recipe.RecipeMaps.extractorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import gregtech.GT_Mod; 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_OreDictUnificator; import gregtech.api.util.GT_RecipeBuilder; import gregtech.api.util.GT_Utility; public class CropProcessingRecipes implements Runnable { @Override public void run() { ItemStack tCrop; // Metals Line tCrop = ItemList.Crop_Drop_Coppon.get(1); this.addProcess(tCrop, Materials.Copper, 100, true); this.addProcess(tCrop, Materials.Tetrahedrite, 100, false); this.addProcess(tCrop, Materials.Chalcopyrite, 100, false); this.addProcess(tCrop, Materials.Malachite, 100, false); this.addProcess(tCrop, Materials.Pyrite, 100, false); this.addProcess(tCrop, Materials.Stibnite, 100, false); tCrop = ItemList.Crop_Drop_Tine.get(1); this.addProcess(tCrop, Materials.Tin, 100, true); this.addProcess(tCrop, Materials.Cassiterite, 100, false); this.addProcess(tCrop, Materials.CassiteriteSand, 100, true); tCrop = ItemList.Crop_Drop_Plumbilia.get(1); this.addProcess(tCrop, Materials.Lead, 100, true); this.addProcess(tCrop, Materials.Galena, 100, false); // tCrop = ItemList.Crop_Drop_Ferru.get(1); this.addProcess(tCrop, Materials.Iron, 100, true); this.addProcess(tCrop, Materials.Magnetite, 100, false); this.addProcess(tCrop, Materials.BrownLimonite, 100, false); this.addProcess(tCrop, Materials.YellowLimonite, 100, false); this.addProcess(tCrop, Materials.VanadiumMagnetite, 100, false); this.addProcess(tCrop, Materials.BandedIron, 100, false); this.addProcess(tCrop, Materials.Pyrite, 100, false); this.addProcess(tCrop, Materials.MeteoricIron, 100, false); tCrop = ItemList.Crop_Drop_Nickel.get(1); this.addProcess(tCrop, Materials.Nickel, 100, true); this.addProcess(tCrop, Materials.Garnierite, 100, false); this.addProcess(tCrop, Materials.Pentlandite, 100, false); this.addProcess(tCrop, Materials.Cobaltite, 100, false); this.addProcess(tCrop, Materials.Wulfenite, 100, false); this.addProcess(tCrop, Materials.Powellite, 100, false); tCrop = ItemList.Crop_Drop_Zinc.get(1); this.addProcess(tCrop, Materials.Zinc, 100, true); this.addProcess(tCrop, Materials.Sphalerite, 100, false); this.addProcess(tCrop, Materials.Sulfur, 100, false); tCrop = ItemList.Crop_Drop_Argentia.get(1); this.addProcess(tCrop, Materials.Silver, 100, true); this.addProcess(tCrop, Materials.Galena, 100, false); tCrop = ItemList.Crop_Drop_Aurelia.get(1); this.addProcess(tCrop, Materials.Gold, 100, true); this.addProcess(tCrop, Materials.Magnetite, Materials.Gold, 100, false); tCrop = ItemList.Crop_Drop_Mica.get(1); this.addProcess(tCrop, Materials.Mica, 75, true); // Rare Metals Line tCrop = ItemList.Crop_Drop_Bauxite.get(1); this.addProcess(tCrop, Materials.Aluminium, 60, true); this.addProcess(tCrop, Materials.Bauxite, 100, false); tCrop = ItemList.Crop_Drop_Manganese.get(1); this.addProcess(tCrop, Materials.Manganese, 30, true); this.addProcess(tCrop, Materials.Grossular, 100, false); this.addProcess(tCrop, Materials.Spessartine, 100, false); this.addProcess(tCrop, Materials.Pyrolusite, 100, false); this.addProcess(tCrop, Materials.Tantalite, 100, false); tCrop = ItemList.Crop_Drop_Ilmenite.get(1); this.addProcess(tCrop, Materials.Titanium, 100, true); this.addProcess(tCrop, Materials.Ilmenite, 100, false); this.addProcess(tCrop, Materials.Bauxite, 100, false); this.addProcess(tCrop, Materials.Rutile, 100, false); tCrop = ItemList.Crop_Drop_Scheelite.get(1); this.addProcess(tCrop, Materials.Scheelite, 100, true); this.addProcess(tCrop, Materials.Tungstate, 100, false); this.addProcess(tCrop, Materials.Lithium, 100, false); this.addProcess(tCrop, Materials.Tungsten, 75, false); tCrop = ItemList.Crop_Drop_Platinum.get(1); this.addProcess(tCrop, Materials.Platinum, 40, true); this.addProcess(tCrop, Materials.Cooperite, 40, false); this.addProcess(tCrop, Materials.Palladium, 40, false); this.addProcess(tCrop, Materials.Neodymium, 100, false); this.addProcess(tCrop, Materials.Bastnasite, 100, false); tCrop = ItemList.Crop_Drop_Iridium.get(1); this.addProcess(tCrop, Materials.Iridium, 20, true); tCrop = ItemList.Crop_Drop_Osmium.get(1); this.addProcess(tCrop, Materials.Osmium, 20, true); // Radioactive Line tCrop = ItemList.Crop_Drop_Pitchblende.get(1); this.addProcess(tCrop, Materials.Pitchblende, 50, true); tCrop = ItemList.Crop_Drop_Uraninite.get(1); this.addProcess(tCrop, Materials.Uraninite, 50, false); this.addProcess(tCrop, Materials.Uranium, 50, true); this.addProcess(tCrop, Materials.Pitchblende, 50, false); this.addProcess(tCrop, Materials.Uranium235, 50, false); tCrop = ItemList.Crop_Drop_Thorium.get(1); this.addProcess(tCrop, Materials.Thorium, 50, true); tCrop = ItemList.Crop_Drop_Naquadah.get(1); this.addProcess(tCrop, Materials.Naquadah, 10, true); this.addProcess(tCrop, Materials.NaquadahEnriched, 10, false); this.addProcess(tCrop, Materials.Naquadria, 10, false); // Gem Line tCrop = ItemList.Crop_Drop_BobsYerUncleRanks.get(1); this.addProcess(tCrop, Materials.Emerald, 100, true); this.addProcess(tCrop, Materials.Beryllium, 100, false); } public void addProcess(ItemStack tCrop, Materials aMaterial, int chance, boolean aMainOutput) { addProcess(tCrop, aMaterial, aMaterial, chance, aMainOutput); } public void addProcess(ItemStack tCrop, Materials aMaterial, Materials aMaterialOut, int chance, boolean aMainOutput) { if (tCrop == null || aMaterial == null || GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1) == null) return; if (GT_Mod.gregtechproxy.mNerfedCrops) { FluidStack fluidOutputChemReactor = aMaterialOut.mOreByProducts.isEmpty() ? null : aMaterialOut.mOreByProducts.get(0) .getMolten(144); GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); recipeBuilder .itemInputs( GT_Utility.copyAmount(9, tCrop), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4)) .fluidInputs(Materials.Water.getFluid(1000)); if (fluidOutputChemReactor != null) { recipeBuilder.fluidOutputs(fluidOutputChemReactor); } recipeBuilder.duration(4 * SECONDS + 16 * TICKS) .eut(24) .addTo(UniversalChemical); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(16, tCrop)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 1)) .fluidInputs(Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass() + 9) / 10)))) .duration((int) (aMaterial.getMass() * 128)) .eut(384) .addTo(autoclaveRecipes); } else { if (aMainOutput) { GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(9, tCrop)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1)) .duration(15 * SECONDS) .eut(2) .addTo(extractorRecipes); } } } public void addProcess(ItemStack tCrop, Materials aMaterial, int chance) { addProcess(tCrop, aMaterial, chance, true); } public void addProcess(ItemStack tCrop, Materials aMaterial, Materials aMaterialOut, int chance) { addProcess(tCrop, aMaterial, aMaterialOut, chance, true); } }