From e0d5a220e764f9a921d5cd98a3e1e2e64ad6c591 Mon Sep 17 00:00:00 2001 From: boubou19 Date: Wed, 4 Oct 2023 23:22:52 +0200 Subject: Code cleanup (#2309) * guard clause technique on GT_ItemIterator * removing oredict for ars magica 2 items * removing oredict for mystcraft items * convert big if ladder into a swtich statement * enhanced switch * clean non GTNH compat and identify other compats * spotlessApply (#2310) Co-authored-by: GitHub GTNH Actions <> * more guard clauses * reordering condition * removing dead code * removing optional block * deprecating mIC2Classic * spotless apply * deprecate modloaded variables * spotlessApply --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Martin Robertz --- .../gregtech/loaders/load/GT_ItemIterator.java | 439 +++++--------- .../gregtech/loaders/misc/GT_Achievements.java | 22 +- .../loaders/oreprocessing/ProcessingArrows.java | 45 +- .../loaders/oreprocessing/ProcessingBeans.java | 17 +- .../loaders/oreprocessing/ProcessingBlock.java | 31 +- .../loaders/oreprocessing/ProcessingBolt.java | 28 +- .../loaders/oreprocessing/ProcessingCell.java | 221 ++++---- .../oreprocessing/ProcessingCompressed.java | 1 - .../loaders/oreprocessing/ProcessingCrop.java | 14 +- .../oreprocessing/ProcessingCrushedOre.java | 63 ++- .../oreprocessing/ProcessingCrystallized.java | 35 +- .../loaders/postload/GT_CraftingRecipeLoader.java | 93 ++- .../postload/GT_ExtremeDieselFuelLoader.java | 8 +- .../loaders/postload/GT_FakeRecipeLoader.java | 17 +- .../gregtech/loaders/postload/GT_PostLoad.java | 109 ++-- .../postload/recipes/DistilleryRecipes.java | 55 +- .../loaders/postload/recipes/FuelRecipes.java | 18 +- .../loaders/postload/recipes/PyrolyseRecipes.java | 19 +- .../loaders/postload/recipes/RecipeRemover.java | 62 +- .../preload/GT_Loader_Item_Block_And_Fluid.java | 628 ++++++++++----------- 20 files changed, 902 insertions(+), 1023 deletions(-) (limited to 'src/main/java/gregtech/loaders') diff --git a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java index 84f7610824..b50fe65dc5 100644 --- a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java +++ b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java @@ -3,6 +3,7 @@ package gregtech.loaders.load; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCannerRecipes; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.WILDCARD; import static gregtech.api.util.GT_RecipeConstants.FUEL_TYPE; import static gregtech.api.util.GT_RecipeConstants.FUEL_VALUE; @@ -22,7 +23,6 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OreDictNames; import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.ToolDictNames; import gregtech.api.items.GT_Generic_Item; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; @@ -126,13 +126,13 @@ public class GT_ItemIterator implements Runnable { GT_Log.out.println( "GT_Mod: Adding Food Recipes to the Automatic Canning Machine. (also during the following Item Iteration)"); GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(Items.rotten_flesh, 2, 32767), ItemList.IC2_Food_Can_Empty.get(1L)) + .itemInputs(new ItemStack(Items.rotten_flesh, 2, WILDCARD), ItemList.IC2_Food_Can_Empty.get(1L)) .itemOutputs(ItemList.IC2_Food_Can_Spoiled.get(1L)) .duration(10 * SECONDS) .eut(1) .addTo(sCannerRecipes); GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(Items.spider_eye, 2, 32767), ItemList.IC2_Food_Can_Empty.get(1L)) + .itemInputs(new ItemStack(Items.spider_eye, 2, WILDCARD), ItemList.IC2_Food_Can_Empty.get(1L)) .itemOutputs(ItemList.IC2_Food_Can_Spoiled.get(1L)) .duration(5 * SECONDS) .eut(1) @@ -144,13 +144,13 @@ public class GT_ItemIterator implements Runnable { .eut(1) .addTo(sCannerRecipes); GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(Items.cake, 1, 32767), ItemList.IC2_Food_Can_Empty.get(12L)) + .itemInputs(new ItemStack(Items.cake, 1, WILDCARD), ItemList.IC2_Food_Can_Empty.get(12L)) .itemOutputs(ItemList.IC2_Food_Can_Filled.get(12L)) .duration(30 * SECONDS) .eut(1) .addTo(sCannerRecipes); GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(Items.mushroom_stew, 1, 32767), ItemList.IC2_Food_Can_Empty.get(6L)) + .itemInputs(new ItemStack(Items.mushroom_stew, 1, WILDCARD), ItemList.IC2_Food_Can_Empty.get(6L)) .itemOutputs(ItemList.IC2_Food_Can_Filled.get(6L), new ItemStack(Items.bowl, 1)) .duration(15 * SECONDS) .eut(1) @@ -162,294 +162,161 @@ public class GT_ItemIterator implements Runnable { /* (tName.equals("tile.sedimentaryStone")) || **/ for (Object o : Item.itemRegistry) { Object tObject; - if (((tObject = o) instanceof Item) && (!(tObject instanceof GT_Generic_Item))) { - Item tItem = (Item) tObject; - String tName; - if ((tName = tItem.getUnlocalizedName()) != null) { - if ((tItem instanceof IToolCrowbar)) { - if ((!tItem.isDamageable()) - && (!GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) { - if ((GregTech_API.sRecipeFile.get( - ConfigCategories.Recipes.disabledrecipes, - "infiniteDurabilityRCCrowbars", - false)) && (GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 32767)))) { - GT_Log.out.println("GT_Mod: Removed infinite RC Crowbar: " + tName); - } - } else if (GregTech_API.registerCrowbar(new ItemStack(tItem, 1, 32767))) { - GT_Log.out.println("GT_Mod: Registered valid RC Crowbar: " + tName); - } - } - if ((tItem instanceof IToolWrench)) { - if ((!tItem.isDamageable()) - && (!GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) { - if ((GregTech_API.sRecipeFile.get( - ConfigCategories.Recipes.disabledrecipes, - "infiniteDurabilityBCWrenches", - false)) && (GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 32767)))) { - GT_Log.out.println("GT_Mod: Removed infinite BC Wrench: " + tName); - } - } else if (GregTech_API.registerWrench(new ItemStack(tItem, 1, 32767))) { - GT_Log.out.println("GT_Mod: Registered valid BC Wrench: " + tName); - } - } - Block tBlock = GT_Utility.getBlockFromStack(new ItemStack(tItem, 1, 0)); - if (tBlock != null) { - if (tName.endsWith("beehives")) { - tBlock.setHarvestLevel("scoop", 0); - gregtech.common.tools.GT_Tool_Scoop.sBeeHiveMaterial = tBlock.getMaterial(); - } - if (OrePrefixes.stone.mDefaultStackSize - < tItem.getItemStackLimit(new ItemStack(tItem, 1, 0))) { - if ((tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.stone)) - || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.netherrack)) - || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.end_stone))) { - tItem.setMaxStackSize(OrePrefixes.stone.mDefaultStackSize); - } - } - } - if (((tItem instanceof ItemFood)) && (tItem != ItemList.IC2_Food_Can_Filled.getItem()) - && (tItem != ItemList.IC2_Food_Can_Spoiled.getItem())) { - int tFoodValue = ((ItemFood) tItem).func_150905_g(new ItemStack(tItem, 1, 0)); - if (tFoodValue > 0) { - GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); - recipeBuilder.itemInputs( - new ItemStack(tItem, 1, 32767), - ItemList.IC2_Food_Can_Empty.get(tFoodValue)); - if (GT_Utility.getContainerItem(new ItemStack(tItem, 1, 0), true) == null) { - recipeBuilder.itemOutputs(ItemList.IC2_Food_Can_Filled.get(tFoodValue)); - } else { - recipeBuilder.itemOutputs( - ItemList.IC2_Food_Can_Filled.get(tFoodValue), - GT_Utility.getContainerItem(new ItemStack(tItem, 1, 0), true)); - } - recipeBuilder.duration(tFoodValue * 5 * SECONDS) - .eut(1) - .addTo(sCannerRecipes); - } - } - if ((tItem instanceof IFluidContainerItem)) { - GT_OreDictUnificator.addToBlacklist(new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("tile.ArsMagica:ore_vinteum")) { - GT_OreDictUnificator.set(OrePrefixes.ore, Materials.Vinteum, new ItemStack(tItem, 1, 0)); - } - if (tName.equals("item.ArsMagica:purified_vinteum")) { - GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(tItem, 1, 0)) - .metadata(FUEL_VALUE, 256) - .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) - .addTo(GT_RecipeConstants.Fuel); - } - if ((tName.equals("item.fieryBlood")) || (tName.equals("item.fieryTears"))) { - GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(tItem, 1, 0)) - .metadata(FUEL_VALUE, 2048) - .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) - .addTo(GT_RecipeConstants.Fuel); - } - if (tName.equals("tile.TFRoots")) { - GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(tItem, 1, 0)) - .itemOutputs(new ItemStack(Items.stick, 2), new ItemStack(Items.stick, 1)) - .outputChances(10000, 3000) - .duration(20 * SECONDS) - .eut(2) - .addTo(sMaceratorRecipes); - GT_ModHandler.addSawmillRecipe( - new ItemStack(tItem, 1, 0), - new ItemStack(Items.stick, 4), - new ItemStack(Items.stick, 2)); + if (!(((tObject = o) instanceof Item) && (!(tObject instanceof GT_Generic_Item)))) { + continue; + } - GT_Values.RA.stdBuilder() - .itemInputs(new ItemStack(tItem, 1, 1)) - .itemOutputs(new ItemStack(Items.stick, 4)) - .metadata(FUEL_VALUE, 32) - .metadata(FUEL_TYPE, 5) - .duration(0) - .eut(0) - .addTo(GT_RecipeConstants.Fuel); - } - if (tName.equals("item.tconstruct.manual")) { - GT_OreDictUnificator.registerOre("bookTinkersManual", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ArsMagica:spell_parchment")) { - GT_OreDictUnificator.registerOre("paperArsSpellParchment", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ArsMagica:spell_recipe")) { - GT_OreDictUnificator.registerOre("paperArsSpellRecipe", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ArsMagica:spell_book")) { - GT_OreDictUnificator.registerOre("bookArsSpells", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.myst.page")) { - GT_OreDictUnificator.registerOre("paperMystcraft", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.myst.agebook")) { - GT_OreDictUnificator.registerOre("bookMystcraftAge", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.myst.linkbook")) { - GT_OreDictUnificator.registerOre("bookMystcraftLink", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.myst.notebook")) { - GT_OreDictUnificator.registerOre("bookNotes", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.itemManuelBook")) { - GT_OreDictUnificator.registerOre("bookWritten", new ItemStack(tItem, 1, 0)); - } - if (tName.equals("item.blueprintItem")) { - GT_OreDictUnificator.registerOre("paperBlueprint", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ccprintout")) { - GT_OreDictUnificator.registerOre("paperWritten", new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator.registerOre("paperWritten", new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator.registerOre("bookWritten", new ItemStack(tItem, 1, 2)); - } - if (tName.equals("item.blueprintItem")) { - GT_OreDictUnificator.registerOre("paperBlueprint", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.wirelessmap")) { - GT_OreDictUnificator.registerOre("paperMap", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ItemResearchNotes")) { - GT_OreDictUnificator.registerOre("paperResearch", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ItemThaumonomicon")) { - GT_OreDictUnificator.registerOre("bookThaumonomicon", new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("item.ligniteCoal")) { - GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Lignite, new ItemStack(tItem, 1, 0)); - } - if ((tName.equals("tile.extrabiomes.redrock")) || (tName.equals("tile.bop.redRocks"))) { - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 2)); - } - if (tName.equals("tile.rpstone")) { - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 2)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 3)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 4)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 5)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 6)); - } - if (((tName.equals("tile.igneousStone")) || (tName.equals("tile.igneousStoneBrick")) - || (tName.equals("tile.igneousCobblestone")))) { - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Rhyolite, new ItemStack(tItem, 1, 2)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Andesite, new ItemStack(tItem, 1, 3)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Gabbro, new ItemStack(tItem, 1, 4)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 5)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Komatiite, new ItemStack(tItem, 1, 6)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Dacite, new ItemStack(tItem, 1, 7)); + Item tItem = (Item) tObject; + String tName; + if ((tName = tItem.getUnlocalizedName()) == null) { + continue; + } - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(tItem, 1, 8)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(tItem, 1, 9)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Rhyolite, new ItemStack(tItem, 1, 10)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Andesite, new ItemStack(tItem, 1, 11)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Gabbro, new ItemStack(tItem, 1, 12)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Basalt, new ItemStack(tItem, 1, 13)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Komatiite, new ItemStack(tItem, 1, 14)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Dacite, new ItemStack(tItem, 1, 15)); + if ((tItem instanceof IToolCrowbar)) { + if ((!tItem.isDamageable()) && (!GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) { + if ((GregTech_API.sRecipeFile + .get(ConfigCategories.Recipes.disabledrecipes, "infiniteDurabilityRCCrowbars", false)) + && (GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, WILDCARD)))) { + GT_Log.out.println("GT_Mod: Removed infinite RC Crowbar: " + tName); + } + } else if (GregTech_API.registerCrowbar(new ItemStack(tItem, 1, WILDCARD))) { + GT_Log.out.println("GT_Mod: Registered valid RC Crowbar: " + tName); + } + } + if ((tItem instanceof IToolWrench)) { + if ((!tItem.isDamageable()) && (!GT_ModHandler.isElectricItem(new ItemStack(tItem, 1, 0)))) { + if ((GregTech_API.sRecipeFile + .get(ConfigCategories.Recipes.disabledrecipes, "infiniteDurabilityBCWrenches", false)) + && (GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, WILDCARD)))) { + GT_Log.out.println("GT_Mod: Removed infinite BC Wrench: " + tName); + } + } else if (GregTech_API.registerWrench(new ItemStack(tItem, 1, WILDCARD))) { + GT_Log.out.println("GT_Mod: Registered valid BC Wrench: " + tName); + } + } + Block tBlock = GT_Utility.getBlockFromStack(new ItemStack(tItem, 1, 0)); + if (tBlock != null) { + if (tName.endsWith("beehives")) { + tBlock.setHarvestLevel("scoop", 0); + gregtech.common.tools.GT_Tool_Scoop.sBeeHiveMaterial = tBlock.getMaterial(); + } + if (OrePrefixes.stone.mDefaultStackSize < tItem.getItemStackLimit(new ItemStack(tItem, 1, 0))) { + if ((tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.stone)) + || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.netherrack)) + || (tBlock.isReplaceableOreGen(GT_Values.DW, 0, 0, 0, Blocks.end_stone))) { + tItem.setMaxStackSize(OrePrefixes.stone.mDefaultStackSize); } - if ((tName.equals("tile.metamorphicStone")) || (tName.equals("tile.metamorphicStoneBrick")) - || (tName.equals("tile.metamorphicCobblestone"))) { - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Gneiss, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Eclogite, new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 2)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Quartzite, new ItemStack(tItem, 1, 3)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Blueschist, new ItemStack(tItem, 1, 4)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Greenschist, new ItemStack(tItem, 1, 5)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Soapstone, new ItemStack(tItem, 1, 6)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Migmatite, new ItemStack(tItem, 1, 7)); + } + } + if (((tItem instanceof ItemFood)) && (tItem != ItemList.IC2_Food_Can_Filled.getItem()) + && (tItem != ItemList.IC2_Food_Can_Spoiled.getItem())) { + int tFoodValue = ((ItemFood) tItem).func_150905_g(new ItemStack(tItem, 1, 0)); + if (tFoodValue > 0) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder + .itemInputs(new ItemStack(tItem, 1, WILDCARD), ItemList.IC2_Food_Can_Empty.get(tFoodValue)); + if (GT_Utility.getContainerItem(new ItemStack(tItem, 1, 0), true) == null) { + recipeBuilder.itemOutputs(ItemList.IC2_Food_Can_Filled.get(tFoodValue)); + } else { + recipeBuilder.itemOutputs( + ItemList.IC2_Food_Can_Filled.get(tFoodValue), + GT_Utility.getContainerItem(new ItemStack(tItem, 1, 0), true)); + } + recipeBuilder.duration(tFoodValue * 5 * SECONDS) + .eut(1) + .addTo(sCannerRecipes); + } + } + if ((tItem instanceof IFluidContainerItem)) { + GT_OreDictUnificator.addToBlacklist(new ItemStack(tItem, 1, WILDCARD)); + } - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Gneiss, new ItemStack(tItem, 1, 8)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Eclogite, new ItemStack(tItem, 1, 9)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Marble, new ItemStack(tItem, 1, 10)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Quartzite, new ItemStack(tItem, 1, 11)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Blueschist, new ItemStack(tItem, 1, 12)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Greenschist, new ItemStack(tItem, 1, 13)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Soapstone, new ItemStack(tItem, 1, 14)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Migmatite, new ItemStack(tItem, 1, 15)); - } - if (tName.equals("tile.blockCosmeticSolid")) { - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 0)); - GT_OreDictUnificator - .registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 1)); - GT_OreDictUnificator - .registerOre(OrePrefixes.block, Materials.Thaumium, new ItemStack(tItem, 1, 4)); - } - if (tName.equals("tile.enderchest")) { - GT_OreDictUnificator.registerOre(OreDictNames.enderChest, new ItemStack(tItem, 1, 32767)); - } - if (tName.equals("tile.autoWorkbenchBlock")) { - GT_OreDictUnificator - .registerOre(OreDictNames.craftingWorkBench, new ItemStack(tItem, 1, 0)); - } - if (tName.equals("tile.pumpBlock")) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingPump, new ItemStack(tItem, 1, 0)); - if (GregTech_API.sRecipeFile - .get(ConfigCategories.Recipes.disabledrecipes, "BCPump", false)) { - GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 0)); - } - } - if (tName.equals("tile.tankBlock")) { - GT_OreDictUnificator.registerOre(OreDictNames.craftingTank, new ItemStack(tItem, 1, 0)); - } - if (tName.equals("item.drawplateDiamond")) { - GT_OreDictUnificator - .registerOre(ToolDictNames.craftingToolDrawplate, new ItemStack(tItem, 1, 32767)); + switch (tName) { + // twilight forest + case "item.fieryBlood", "item.fieryTears" -> GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(tItem, 1, 0)) + .metadata(FUEL_VALUE, 2048) + .metadata(FUEL_TYPE, 5) + .duration(0) + .eut(0) + .addTo(GT_RecipeConstants.Fuel); + + // twilight forest + case "tile.TFRoots" -> { + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(tItem, 1, 0)) + .itemOutputs(new ItemStack(Items.stick, 2), new ItemStack(Items.stick, 1)) + .outputChances(10000, 3000) + .duration(20 * SECONDS) + .eut(2) + .addTo(sMaceratorRecipes); + GT_ModHandler.addSawmillRecipe( + new ItemStack(tItem, 1, 0), + new ItemStack(Items.stick, 4), + new ItemStack(Items.stick, 2)); + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(tItem, 1, 1)) + .itemOutputs(new ItemStack(Items.stick, 4)) + .metadata(FUEL_VALUE, 32) + .metadata(FUEL_TYPE, 5) + .duration(0) + .eut(0) + .addTo(GT_RecipeConstants.Fuel); + } + + // tinker construct + case "item.tconstruct.manual" -> GT_OreDictUnificator + .registerOre("bookTinkersManual", new ItemStack(tItem, 1, WILDCARD)); + + // buildcraft + case "item.blueprintItem" -> GT_OreDictUnificator + .registerOre("paperBlueprint", new ItemStack(tItem, 1, WILDCARD)); + + // Thaumcraft + case "item.ItemThaumonomicon" -> GT_OreDictUnificator + .registerOre("bookThaumonomicon", new ItemStack(tItem, 1, WILDCARD)); + + // BoP + case "tile.bop.redRocks" -> { + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 2)); + } + + // Thaumcraft + case "tile.blockCosmeticSolid" -> { + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 0)); + GT_OreDictUnificator + .registerOre(OrePrefixes.stone, Materials.Obsidian, new ItemStack(tItem, 1, 1)); + GT_OreDictUnificator + .registerOre(OrePrefixes.block, Materials.Thaumium, new ItemStack(tItem, 1, 4)); + } + + // minecraft + case "tile.enderchest" -> GT_OreDictUnificator + .registerOre(OreDictNames.enderChest, new ItemStack(tItem, 1, WILDCARD)); + + // buildcraft + case "tile.autoWorkbenchBlock" -> GT_OreDictUnificator + .registerOre(OreDictNames.craftingWorkBench, new ItemStack(tItem, 1, 0)); + + // buildcraft + case "tile.pumpBlock" -> { + GT_OreDictUnificator.registerOre(OreDictNames.craftingPump, new ItemStack(tItem, 1, 0)); + if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "BCPump", false)) { + GT_ModHandler.removeRecipeByOutput(new ItemStack(tItem, 1, 0)); } } + + // buildcraft + case "tile.tankBlock" -> GT_OreDictUnificator + .registerOre(OreDictNames.craftingTank, new ItemStack(tItem, 1, 0)); + } } } catch (Throwable e) { diff --git a/src/main/java/gregtech/loaders/misc/GT_Achievements.java b/src/main/java/gregtech/loaders/misc/GT_Achievements.java index 7fb8a340ae..bd11de28ef 100644 --- a/src/main/java/gregtech/loaders/misc/GT_Achievements.java +++ b/src/main/java/gregtech/loaders/misc/GT_Achievements.java @@ -163,17 +163,17 @@ public class GT_Achievements { GT_OreDictUnificator.get(OrePrefixes.crushedCentrifuged, Materials.Redstone, 1L), "crushed", false); - if (!GregTech_API.mIC2Classic) { - registerAchievement("newfuel", -4, 8, ItemList.ThoriumCell_4.get(1), "spinit", false); - registerAchievement( - "newmetal", - -4, - 10, - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 1L), - "newfuel", - false); - registerAchievement("reflect", -2, 9, ItemList.Neutron_Reflector.get(1), "newfuel", false); - } + + registerAchievement("newfuel", -4, 8, ItemList.ThoriumCell_4.get(1), "spinit", false); + registerAchievement( + "newmetal", + -4, + 10, + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 1L), + "newfuel", + false); + registerAchievement("reflect", -2, 9, ItemList.Neutron_Reflector.get(1), "newfuel", false); + registerAchievement( "bronze", 2, diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java index 0b53a771a4..3cd6015341 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java @@ -103,24 +103,33 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis .eut(2) .addTo(sChemicalBathRecipes); - if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial) - && !aMaterial.contains(SubTag.NO_WORKING)) { - 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; - } + 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 index f5474aee23..3ca039754e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBeans.java @@ -20,13 +20,16 @@ public class ProcessingBeans implements gregtech.api.interfaces.IOreRecipeRegist @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - if (aOreDictName.equals("beansCocoa")) { - GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.copyAmount(1L, aStack)) - .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) - .duration(20 * SECONDS) - .eut(2) - .addTo(sMaceratorRecipes); + + if (!aOreDictName.equals("beansCocoa")) { + return; } + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) + .duration(20 * SECONDS) + .eut(2) + .addTo(sMaceratorRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java index 440fb4b88e..0b110aa381 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java @@ -32,15 +32,15 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - if (aMaterial != Materials.Clay && aMaterial != Materials.Basalt - && aMaterial != MaterialsBotania.Livingrock - && aMaterial != MaterialsBotania.Livingwood - && aMaterial != MaterialsBotania.Dreamwood) { - if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV - && GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + + 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(1L, aStack)) + .itemInputs(GT_Utility.copyAmount(1L, aStack), GT_Utility.getIntegratedCircuit(3)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) .fluidInputs( Materials.Water.getFluid( @@ -52,7 +52,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist .addTo(sCutterRecipes); GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemInputs(GT_Utility.copyAmount(1L, aStack), GT_Utility.getIntegratedCircuit(3)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) .fluidInputs( GT_ModHandler.getDistilledWater( @@ -64,7 +64,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist .addTo(sCutterRecipes); GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemInputs(GT_Utility.copyAmount(1L, aStack), GT_Utility.getIntegratedCircuit(3)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) .fluidInputs( Materials.Lubricant.getFluid( @@ -74,16 +74,13 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist .duration(((int) Math.max(aMaterial.getMass() * 10L, 1L)) * TICKS) .eut(TierEU.RECIPE_LV) .addTo(sCutterRecipes); + } - } - if (aMaterial == MaterialsBotania.Livingrock || aMaterial == MaterialsBotania.Livingwood - || aMaterial == MaterialsBotania.Dreamwood) { - if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV - && GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { + else if (aMaterial != Materials.Clay && aMaterial != Materials.Basalt) { GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.copyAmount(1L, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemInputs(GT_Utility.copyAmount(1L, aStack)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) .fluidInputs( Materials.Water.getFluid( @@ -95,7 +92,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist .addTo(sCutterRecipes); GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.copyAmount(1L, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemInputs(GT_Utility.copyAmount(1L, aStack)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) .fluidInputs( GT_ModHandler.getDistilledWater( @@ -107,7 +104,7 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist .addTo(sCutterRecipes); GT_Values.RA.stdBuilder() - .itemInputs(GT_Utility.copyAmount(1L, aStack), GT_Utility.getIntegratedCircuit(3)) + .itemInputs(GT_Utility.copyAmount(1L, aStack)) .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) .fluidInputs( Materials.Lubricant.getFluid( diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java index ed1bcba32e..ec9bc71a23 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBolt.java @@ -19,14 +19,26 @@ public class ProcessingBolt implements gregtech.api.interfaces.IOreRecipeRegistr @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial) - && !aMaterial.contains(SubTag.NO_WORKING)) { - GT_ModHandler.addCraftingRecipe( - GT_Utility.copyAmount(2L, aStack), - GT_Proxy.tBits, - new Object[] { "s ", " X", 'X', OrePrefixes.stick.get(aMaterial) }); - } + 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(2L, 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 index 71d5dd818c..63b3aaf973 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java @@ -55,119 +55,126 @@ public class ProcessingCell implements IOreRecipeRegistrator { .eut(0) .addTo(GT_RecipeConstants.Fuel); } - if ((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0)) { - int tAllAmount = 0; - for (MaterialStack tMat2 : aMaterial.mMaterialList) { - tAllAmount = (int) (tAllAmount + tMat2.mAmount); + if (!((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0))) { + break; + } + + int tAllAmount = 0; + for (MaterialStack tMat2 : aMaterial.mMaterialList) { + tAllAmount = (int) (tAllAmount + tMat2.mAmount); + } + long tItemAmount = 0L; + long tCapsuleCount = (long) GT_ModHandler + .getCapsuleCellContainerCountMultipliedWithStackSize(aStack) * -tAllAmount; + long tDensityMultiplier = aMaterial.getDensity() > 3628800L ? aMaterial.getDensity() / 3628800L + : 1L; + ArrayList tList = new ArrayList<>(); + for (MaterialStack tMat : aMaterial.mMaterialList) { + if (tMat.mAmount <= 0) { + continue; + } + + ItemStack tStack; + if (tMat.mMaterial == Materials.Air) { + tStack = ItemList.Cell_Air.get(tMat.mAmount * tDensityMultiplier / 2L); + } else { + tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tMat.mMaterial, tMat.mAmount); + if (tStack == null) { + tStack = GT_OreDictUnificator.get(OrePrefixes.cell, tMat.mMaterial, tMat.mAmount); + } + } + if (tItemAmount + tMat.mAmount * 3628800L > aStack.getMaxStackSize() * aMaterial.getDensity()) { + continue; + } + + tItemAmount += tMat.mAmount * 3628800L; + + if (tStack == null) { + continue; + } + + tStack.stackSize = ((int) (tStack.stackSize * tDensityMultiplier)); + while ((tStack.stackSize > 64) + && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64L < 0L + ? tList.size() < 5 + : tList.size() < 6) + && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64L <= 64L)) { + tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64L; + tList.add(GT_Utility.copyAmount(64L, tStack)); + tStack.stackSize -= 64; } - long tItemAmount = 0L; - long tCapsuleCount = (long) GT_ModHandler - .getCapsuleCellContainerCountMultipliedWithStackSize(aStack) * -tAllAmount; - long tDensityMultiplier = aMaterial.getDensity() > 3628800L ? aMaterial.getDensity() / 3628800L - : 1L; - ArrayList tList = new ArrayList<>(); - for (MaterialStack tMat : aMaterial.mMaterialList) { - if (tMat.mAmount > 0L) { - ItemStack tStack; - if (tMat.mMaterial == Materials.Air) { - tStack = ItemList.Cell_Air.get(tMat.mAmount * tDensityMultiplier / 2L); - } else { - tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tMat.mMaterial, tMat.mAmount); - if (tStack == null) { - tStack = GT_OreDictUnificator - .get(OrePrefixes.cell, tMat.mMaterial, tMat.mAmount); - } - } - if (tItemAmount + tMat.mAmount * 3628800L - <= aStack.getMaxStackSize() * aMaterial.getDensity()) { - tItemAmount += tMat.mAmount * 3628800L; - if (tStack != null) { - tStack.stackSize = ((int) (tStack.stackSize * tDensityMultiplier)); - while ((tStack.stackSize > 64) - && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64L - < 0L ? tList.size() < 5 : tList.size() < 6) - && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64L - <= 64L)) { - tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64L; - tList.add(GT_Utility.copyAmount(64L, tStack)); - tStack.stackSize -= 64; - } - int tThisCapsuleCount = GT_ModHandler - .getCapsuleCellContainerCountMultipliedWithStackSize(tStack); - if (tStack.stackSize > 0 && tCapsuleCount + tThisCapsuleCount <= 64L) { - if (tCapsuleCount + tThisCapsuleCount < 0L ? tList.size() < 5 - : tList.size() < 6) { - tCapsuleCount += tThisCapsuleCount; - tList.add(tStack); - } - } - } - } + int tThisCapsuleCount = GT_ModHandler + .getCapsuleCellContainerCountMultipliedWithStackSize(tStack); + if (tStack.stackSize > 0 && tCapsuleCount + tThisCapsuleCount <= 64L) { + if (tCapsuleCount + tThisCapsuleCount < 0L ? tList.size() < 5 : tList.size() < 6) { + tCapsuleCount += tThisCapsuleCount; + tList.add(tStack); } } - tItemAmount = GT_Utility.ceilDiv(tItemAmount * tDensityMultiplier, aMaterial.getDensity()); - if (tList.size() > 0) { - if ((aMaterial.mExtraData & 0x1) != 0) { - // Electrolyzer recipe - { - if (GT_Utility.getFluidForFilledItem(aStack, true) == null) { - // dust stuffed cell e.g. Phosphate, Phosphorous Pentoxide - GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); - if (tCapsuleCount > 0L) { - recipeBuilder.itemInputs( - GT_Utility.copyAmount(tItemAmount, aStack), - ItemList.Cell_Empty.get(tCapsuleCount)); - } else { - recipeBuilder.itemInputs(GT_Utility.copyAmount(tItemAmount, aStack)); - } - if (tCapsuleCount < 0L) { - tList.add(ItemList.Cell_Empty.get(-tCapsuleCount)); - } - ItemStack[] outputsArray = tList - .toArray(new ItemStack[Math.min(tList.size(), 6)]); - recipeBuilder.itemOutputs(outputsArray) - .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount))) - .eut(Math.min(4, tList.size()) * 30) - .addTo(sElectrolyzerRecipes); - } else { - long tCellBalance = tCapsuleCount + tItemAmount - 1; - GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); - if (tCellBalance > 0L) { - recipeBuilder.itemInputs(aStack, ItemList.Cell_Empty.get(tCellBalance)); - } else { - recipeBuilder.itemInputs(aStack); - } - if (tCellBalance < 0L) { - tList.add(ItemList.Cell_Empty.get(-tCellBalance)); - } - ItemStack[] outputsArray = tList - .toArray(new ItemStack[Math.min(tList.size(), 6)]); - recipeBuilder.itemOutputs(outputsArray) - .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount))) - .eut(Math.min(4, tList.size()) * 30) - .addTo(sElectrolyzerRecipes); - } - } + } + + tItemAmount = GT_Utility.ceilDiv(tItemAmount * tDensityMultiplier, aMaterial.getDensity()); + + if (tList.size() <= 0) { + break; + } + + if ((aMaterial.mExtraData & 0x1) != 0) { + + // Electrolyzer recipe + if (GT_Utility.getFluidForFilledItem(aStack, true) == null) { + // dust stuffed cell e.g. Phosphate, Phosphorous Pentoxide + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + if (tCapsuleCount > 0L) { + recipeBuilder.itemInputs( + GT_Utility.copyAmount(tItemAmount, aStack), + ItemList.Cell_Empty.get(tCapsuleCount)); + } else { + recipeBuilder.itemInputs(GT_Utility.copyAmount(tItemAmount, aStack)); } - if ((aMaterial.mExtraData & 0x2) != 0) { - GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); - if (tCapsuleCount > 0L) { - recipeBuilder.itemInputs( - GT_Utility.copyAmount(tItemAmount, aStack), - ItemList.Cell_Empty.get(tCapsuleCount)); - } else { - recipeBuilder.itemInputs(GT_Utility.copyAmount(tItemAmount, aStack)); - } - if (tCapsuleCount < 0L) { - tList.add(ItemList.Cell_Empty.get(-tCapsuleCount)); - } - ItemStack[] outputsArray = tList.toArray(new ItemStack[Math.min(tList.size(), 6)]); - recipeBuilder.itemOutputs(outputsArray) - .duration(Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))) - .eut(5) - .addTo(sCentrifugeRecipes); + if (tCapsuleCount < 0L) { + tList.add(ItemList.Cell_Empty.get(-tCapsuleCount)); } + ItemStack[] outputsArray = tList.toArray(new ItemStack[Math.min(tList.size(), 6)]); + recipeBuilder.itemOutputs(outputsArray) + .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 30) + .addTo(sElectrolyzerRecipes); + } else { + long tCellBalance = tCapsuleCount + tItemAmount - 1; + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + if (tCellBalance > 0L) { + recipeBuilder.itemInputs(aStack, ItemList.Cell_Empty.get(tCellBalance)); + } else { + recipeBuilder.itemInputs(aStack); + } + if (tCellBalance < 0L) { + tList.add(ItemList.Cell_Empty.get(-tCellBalance)); + } + ItemStack[] outputsArray = tList.toArray(new ItemStack[Math.min(tList.size(), 6)]); + recipeBuilder.itemOutputs(outputsArray) + .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 30) + .addTo(sElectrolyzerRecipes); + } + } + if ((aMaterial.mExtraData & 0x2) != 0) { + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + if (tCapsuleCount > 0L) { + recipeBuilder.itemInputs( + GT_Utility.copyAmount(tItemAmount, aStack), + ItemList.Cell_Empty.get(tCapsuleCount)); + } else { + recipeBuilder.itemInputs(GT_Utility.copyAmount(tItemAmount, aStack)); + } + if (tCapsuleCount < 0L) { + tList.add(ItemList.Cell_Empty.get(-tCapsuleCount)); } + ItemStack[] outputsArray = tList.toArray(new ItemStack[Math.min(tList.size(), 6)]); + recipeBuilder.itemOutputs(outputsArray) + .duration(Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))) + .eut(5) + .addTo(sCentrifugeRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java index 725d382dc1..4ef818df5b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCompressed.java @@ -21,6 +21,5 @@ public class ProcessingCompressed implements IOreRecipeRegistrator { GT_ModHandler.removeRecipeByOutputDelayed(aStack); GregTech_API .registerCover(aStack, TextureFactory.of(aMaterial.mIconSet.mTextures[72], aMaterial.mRGBa, false), null); - // GT_RecipeRegistrator.registerUsagesForMaterials(null, false, GT_Utility.copyAmount(1L, aStack)); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java index a7eeb338a3..b73254c52f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java @@ -29,14 +29,12 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, net.minecraft.item.ItemStack aStack) { // Compressor recipes - { - GT_Values.RA.stdBuilder() - .itemInputs(gregtech.api.util.GT_Utility.copyAmount(8L, aStack)) - .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) - .duration(15 * SECONDS) - .eut(2) - .addTo(sCompressorRecipes); - } + GT_Values.RA.stdBuilder() + .itemInputs(gregtech.api.util.GT_Utility.copyAmount(8L, aStack)) + .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) + .duration(15 * SECONDS) + .eut(2) + .addTo(sCompressorRecipes); Fluid[] waterArray; diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java index 663960e2bf..e83900f979