diff options
Diffstat (limited to 'src/main/java/gregtech/loaders/oreprocessing')
52 files changed, 9945 insertions, 0 deletions
diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java new file mode 100644 index 0000000000..2f390b25e8 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingAll.java @@ -0,0 +1,24 @@ +package gregtech.loaders.oreprocessing; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; + +public class ProcessingAll implements gregtech.api.interfaces.IOreRecipeRegistrator { // TODO ACTUALLY COMPARE ALL THE + // PROCESSING CLASSES + + public ProcessingAll() { + for (OrePrefixes tPrefix : OrePrefixes.values()) tPrefix.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (((aStack.getItem() instanceof net.minecraft.item.ItemBlock)) + && (aPrefix.mDefaultStackSize < aStack.getItem() + .getItemStackLimit(aStack))) + aStack.getItem() + .setMaxStackSize(aPrefix.mDefaultStackSize); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java new file mode 100644 index 0000000000..11d1b1e1b8 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java @@ -0,0 +1,135 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.chemicalBathRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OreDictNames; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingArrows() { + OrePrefixes.arrowGtWood.add(this); + OrePrefixes.arrowGtPlastic.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + ItemStack tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + Enchantment.smite, + EnchantmentHelper.getEnchantmentLevel(Enchantment.smite.effectId, tOutput) + 3); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.HolyWater.getFluid(25L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + Enchantment.fireAspect, + EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 3); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.FierySteel.getFluid(25L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + Enchantment.fireAspect, + EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 1); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.Blaze.getMolten(18L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + Enchantment.knockback, + EnchantmentHelper.getEnchantmentLevel(Enchantment.knockback.effectId, tOutput) + 1); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.Rubber.getMolten(18L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + tOutput = GT_Utility.copyAmount(1, aStack); + GT_Utility.updateItemStack(tOutput); + GT_Utility.ItemNBT.addEnchantment( + tOutput, + gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE, + EnchantmentHelper + .getEnchantmentLevel(gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE.effectId, tOutput) + 1); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.Mercury.getFluid(25L)) + .duration(5 * SECONDS) + .eut(2) + .addTo(chemicalBathRecipes); + + if (!aMaterial.mUnificatable) { + return; + } + if (aMaterial.mMaterialInto != aMaterial) { + return; + } + + if (aMaterial.contains(SubTag.NO_WORKING)) { + return; + } + + switch (aPrefix) { + case arrowGtWood: + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { " A", " S ", "F ", 'S', OrePrefixes.stick.get(Materials.Wood), 'F', + OreDictNames.craftingFeather, 'A', OrePrefixes.toolHeadArrow.get(aMaterial) }); + case arrowGtPlastic: + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.arrowGtPlastic, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { " A", " S ", "F ", 'S', OrePrefixes.stick.get(Materials.Plastic), 'F', + OreDictNames.craftingFeather, 'A', OrePrefixes.toolHeadArrow.get(aMaterial) }); + default: + break; + } + + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java new file mode 100644 index 0000000000..2fb200216e --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java @@ -0,0 +1,35 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingBeans implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingBeans() { + OrePrefixes.beans.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + + if (!aOreDictName.equals("beansCocoa")) { + return; + } + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(maceratorRecipes); + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java new file mode 100644 index 0000000000..b9926b188b --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java @@ -0,0 +1,187 @@ +package gregtech.loaders.oreprocessing; + +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.cutterRecipes; +import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; +import static gregtech.api.recipe.RecipeMaps.hammerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_Utility.calculateRecipeEU; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.MaterialsBotania; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; + +public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingBlock() { + OrePrefixes.block.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + + if (aMaterial == Materials.Ichorium) { + return; + } + + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV + && GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + + if (aMaterial == MaterialsBotania.Livingrock || aMaterial == MaterialsBotania.Livingwood + || aMaterial == MaterialsBotania.Dreamwood) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + Materials.Water.getFluid( + Math.max( + 4, + Math.min(1000, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 320)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + GT_ModHandler.getDistilledWater( + Math.max( + 3, + Math.min(750, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 426)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + Materials.Lubricant.getFluid( + Math.max( + 1, + Math.min(250, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 1280)))) + .duration(((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + } + + else if (aMaterial != Materials.Clay && aMaterial != Materials.Basalt) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + Materials.Water.getFluid( + Math.max( + 4, + Math.min(1000, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 320)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + GT_ModHandler.getDistilledWater( + Math.max( + 3, + Math.min(750, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 426)))) + .duration(2 * ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .fluidInputs( + Materials.Lubricant.getFluid( + Math.max( + 1, + Math.min(250, ((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS * 30 / 1280)))) + .duration(((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) + .eut(TierEU.RECIPE_LV) + .addTo(cutterRecipes); + } + } + + ItemStack tStack1 = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L); + ItemStack tStack2 = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); + ItemStack tStack3 = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L); + + GT_ModHandler.removeRecipeDelayed(GT_Utility.copyAmount(1, aStack)); + + if (tStack1 != null) GT_ModHandler + .removeRecipeDelayed(tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1, tStack1); + if (tStack2 != null) GT_ModHandler + .removeRecipeDelayed(tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2, tStack2); + if (tStack3 != null) { + GT_ModHandler + .removeRecipeDelayed(tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3, tStack3); + } + + if (aMaterial.mStandardMoltenFluid != null) { + if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(1296L)) + .duration(14 * SECONDS + 8 * TICKS) + .eut(8) + .addTo(fluidSolidifierRecipes); + } + } + } + + if (tStack1 != null) tStack1.stackSize = 9; + if (tStack2 != null) tStack2.stackSize = 9; + if (tStack3 != null) tStack3.stackSize = 9; + + if (tStack2 != null) { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(tStack2) + .duration(5 * SECONDS) + .eut(24) + .addTo(hammerRecipes); + } + + if (tStack2 != null && aMaterial != Materials.NetherQuartz) { + if (tStack3 != null) + GT_ModHandler.addShapelessCraftingRecipe(tStack3, new Object[] { OrePrefixes.block.get(aMaterial) }); + GT_ModHandler.addShapelessCraftingRecipe(tStack2, new Object[] { OrePrefixes.block.get(aMaterial) }); + if (tStack1 != null) + GT_ModHandler.addShapelessCraftingRecipe(tStack1, new Object[] { OrePrefixes.block.get(aMaterial) }); + } + + if (!OrePrefixes.block.isIgnored(aMaterial) && tStack1 != null) { + // 9 ingots -> 1 block + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 9L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) + .duration(15 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 2)) + .addTo(compressorRecipes); + } + + switch (aMaterial.mName) { + case "Mercury" -> System.err.println( + "'blockQuickSilver'?, In which Ice Desert can you actually place this as a solid Block? On Pluto Greg :)"); + } + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java new file mode 100644 index 0000000000..0d28c417a8 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java @@ -0,0 +1,44 @@ +package gregtech.loaders.oreprocessing; + +import net.minecraft.item.ItemStack; + +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Utility; +import gregtech.common.GT_Proxy; + +public class ProcessingBolt implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingBolt() { + OrePrefixes.bolt.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, + ItemStack aStack) { + if (aMaterial.getProcessingMaterialTierEU() >= TierEU.IV) { + return; + } + + if (!aMaterial.mUnificatable) { + return; + } + + if ((aMaterial.mMaterialInto != aMaterial)) { + return; + } + + if (aMaterial.contains(SubTag.NO_WORKING)) { + return; + } + + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(2, aStack), + GT_Proxy.tBits, + new Object[] { "s ", " X", 'X', OrePrefixes.stick.get(aMaterial) }); + + } +} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java new file mode 100644 index 0000000000..5a6bdfcf13 --- /dev/null +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java @@ -0,0 +1,441 @@ +package gregtech.loaders.oreprocessing; + |
