package gregtech.loaders.postload.recipes; import static gregtech.api.recipe.RecipeMaps.autoclaveRecipes; import static gregtech.api.util.GTRecipeBuilder.SECONDS; import static gregtech.api.util.GTRecipeBuilder.TICKS; import static gregtech.api.util.GTRecipeConstants.UniversalChemical; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import gregtech.api.enums.GTValues; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTRecipeBuilder; import gregtech.api.util.GTUtility; 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, false); 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 || GTOreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1) == null) return; FluidStack fluidOutputChemReactor = aMaterialOut.mOreByProducts.isEmpty() ? null : aMaterialOut.mOreByProducts.get(0) .getMolten(144); GTRecipeBuilder recipeBuilder = GTValues.RA.stdBuilder(); recipeBuilder .itemInputs(GTUtility.copyAmount(9, tCrop), GTOreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1)) .itemOutputs(GTOreDictUnificator.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); if (aMainOutput) { GTValues.RA.stdBuilder() .itemInputs(GTUtility.copyAmount(16, tCrop)) .itemOutputs(GTOreDictUnificator.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); } } 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); } }