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 --- src/main/java/gregtech/api/GregTech_API.java | 5 +- src/main/java/gregtech/api/enums/OrePrefixes.java | 3 +- .../gregtech/api/items/GT_BreederCell_Item.java | 2 +- .../api/items/GT_RadioactiveCellIC_Item.java | 3 +- .../implementations/GT_MetaPipeEntity_Fluid.java | 9 +- src/main/java/gregtech/api/util/GT_GC_Compat.java | 7 +- src/main/java/gregtech/api/util/GT_Utility.java | 3 +- .../render/items/GT_GeneratedItem_Renderer.java | 4 +- .../items/GT_GeneratedMaterial_Renderer.java | 5 +- .../common/render/items/UniversiumRenderer.java | 7 +- .../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 ++++++++++----------- 30 files changed, 931 insertions(+), 1042 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index ded3a6c9d7..de295e2aa6 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -278,7 +278,10 @@ public class GregTech_API { sMachineExplosions = true, sMachineFlammable = true, sMachineNonWrenchExplosions = true, sMachineRainExplosions = true, sMachineThunderExplosions = true, sMachineFireExplosions = true, sMachineWireFire = true, mOutputRF = false, mInputRF = false, meIOLoaded = false, mRFExplosions = false, - mServerStarted = false, mIC2Classic = false, mMagneticraft = false, mImmersiveEngineering = false, + mServerStarted = false; + + @Deprecated + public static boolean mIC2Classic = false, mMagneticraft = false, mImmersiveEngineering = false, mGTPlusPlus = false, mTranslocator = false, mTConstruct = false, mGalacticraft = false, mHodgepodge = false, mAvaritia = false; /** diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java index 5a756519e3..f0ee636f8b 100644 --- a/src/main/java/gregtech/api/enums/OrePrefixes.java +++ b/src/main/java/gregtech/api/enums/OrePrefixes.java @@ -3,6 +3,7 @@ package gregtech.api.enums; import static gregtech.api.enums.GT_Values.B; import static gregtech.api.enums.GT_Values.D2; import static gregtech.api.enums.GT_Values.M; +import static gregtech.api.enums.Mods.GTPlusPlus; import java.util.ArrayList; import java.util.Arrays; @@ -1280,7 +1281,7 @@ public enum OrePrefixes { plateQuadruple.mDisabledItems.add(aMaterial); if (!enableUnusedQuinPlates && !(aMaterial == Materials.Paper)) plateQuintuple.mDisabledItems.add(aMaterial); - if (!(enableUnusedDensePlates || GregTech_API.mGTPlusPlus) + if (!(enableUnusedDensePlates || GTPlusPlus.isModLoaded()) && !(aMaterial == Materials.Iron || aMaterial == Materials.Copper || aMaterial == Materials.Lead || aMaterial == Materials.Paper diff --git a/src/main/java/gregtech/api/items/GT_BreederCell_Item.java b/src/main/java/gregtech/api/items/GT_BreederCell_Item.java index 587d469017..3d51415783 100644 --- a/src/main/java/gregtech/api/items/GT_BreederCell_Item.java +++ b/src/main/java/gregtech/api/items/GT_BreederCell_Item.java @@ -68,7 +68,7 @@ public class GT_BreederCell_Item extends GT_Generic_Item implements IReactorComp @Override public void onUpdate(ItemStack stack, World world, Entity entity, int slotIndex, boolean isCurrentItem) { if ((entity instanceof EntityLivingBase entityLiving)) { - if (!GregTech_API.mIC2Classic && !GT_Utility.isWearingFullRadioHazmat(entityLiving)) { + if (!GT_Utility.isWearingFullRadioHazmat(entityLiving)) { IC2Potion.radiation.applyTo(entityLiving, 20, 1); } } diff --git a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java index c38510f750..8698bac886 100644 --- a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java +++ b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java @@ -7,7 +7,6 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.util.GT_Utility; import ic2.api.reactor.IReactor; @@ -176,7 +175,7 @@ public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implement @Override public void onUpdate(ItemStack stack, World world, Entity entity, int slotIndex, boolean isCurrentItem) { if (this.sRadiation > 0 && (entity instanceof EntityLivingBase entityLiving)) { - if (!GregTech_API.mIC2Classic && !GT_Utility.isWearingFullRadioHazmat(entityLiving)) { + if (!GT_Utility.isWearingFullRadioHazmat(entityLiving)) { IC2Potion.radiation.applyTo(entityLiving, sRadiation * 20, sRadiation * 10); } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index 862650d3d5..7162815a17 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -2,6 +2,8 @@ package gregtech.api.metatileentity.implementations; import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.GT_Values.D1; +import static gregtech.api.enums.Mods.TinkerConstruct; +import static gregtech.api.enums.Mods.Translocator; import static gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid.Border.BOTTOM; import static gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid.Border.LEFT; import static gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid.Border.RIGHT; @@ -38,7 +40,6 @@ import org.apache.commons.lang3.tuple.MutableTriple; import cpw.mods.fml.common.Optional; import gregtech.GT_Mod; -import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; import gregtech.api.enums.Materials; import gregtech.api.enums.Mods; @@ -549,15 +550,15 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { ? (IGregTechTileEntity) tileEntity : null; - if (coverBehavior instanceof GT_Cover_Drain || (GregTech_API.mTConstruct && isTConstructFaucet(tileEntity))) - return true; + if (coverBehavior instanceof GT_Cover_Drain + || (TinkerConstruct.isModLoaded() && isTConstructFaucet(tileEntity))) return true; final IFluidHandler fTileEntity = (tileEntity instanceof IFluidHandler) ? (IFluidHandler) tileEntity : null; if (fTileEntity != null) { final FluidTankInfo[] tInfo = fTileEntity.getTankInfo(tSide); if (tInfo != null) { - return tInfo.length > 0 || (GregTech_API.mTranslocator && isTranslocator(tileEntity)) + return tInfo.length > 0 || (Translocator.isModLoaded() && isTranslocator(tileEntity)) || gTileEntity != null && gTileEntity.getCoverBehaviorAtSideNew(tSide) instanceof GT_Cover_FluidRegulator; } diff --git a/src/main/java/gregtech/api/util/GT_GC_Compat.java b/src/main/java/gregtech/api/util/GT_GC_Compat.java index a441fa4be1..24710ab0ac 100644 --- a/src/main/java/gregtech/api/util/GT_GC_Compat.java +++ b/src/main/java/gregtech/api/util/GT_GC_Compat.java @@ -1,9 +1,10 @@ package gregtech.api.util; +import static gregtech.api.enums.Mods.GalacticraftCore; + import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -import gregtech.api.GregTech_API; import micdoodle8.mods.galacticraft.api.power.EnergySource; import micdoodle8.mods.galacticraft.api.power.EnergySource.EnergySourceAdjacent; import micdoodle8.mods.galacticraft.api.power.IEnergyHandlerGC; @@ -15,7 +16,7 @@ public class GT_GC_Compat { public static long insertEnergyInto(TileEntity tTileEntity, long aVoltage, ForgeDirection tDirection) { // GC Compat - if (GregTech_API.mGalacticraft && tTileEntity instanceof IEnergyHandlerGC) { + if (GalacticraftCore.isModLoaded() && tTileEntity instanceof IEnergyHandlerGC) { if (!(tTileEntity instanceof IConnector) || ((IConnector) tTileEntity).canConnect(tDirection, NetworkType.POWER)) { EnergySource eSource = new EnergySourceAdjacent(tDirection); @@ -44,7 +45,7 @@ public class GT_GC_Compat { public static boolean canConnect(TileEntity tTileEntity, ForgeDirection tDirection) { // GC Compat - return GregTech_API.mGalacticraft && tTileEntity instanceof IEnergyHandlerGC + return GalacticraftCore.isModLoaded() && tTileEntity instanceof IEnergyHandlerGC && (!(tTileEntity instanceof IConnector) || ((IConnector) tTileEntity).canConnect(tDirection, NetworkType.POWER)); } diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 0bac435d9a..b61ec8336f 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -10,6 +10,7 @@ import static gregtech.api.enums.GT_Values.NW; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.GT_Values.W; import static gregtech.api.enums.Materials.FLUID_MAP; +import static gregtech.api.enums.Mods.Translocator; import static gregtech.common.GT_UndergroundOil.undergroundOilReadInformation; import static net.minecraftforge.common.util.ForgeDirection.DOWN; import static net.minecraftforge.common.util.ForgeDirection.EAST; @@ -573,7 +574,7 @@ public class GT_Utility { if (TE_CHECK && tileEntity instanceof IItemDuct) return true; if (BC_CHECK && tileEntity instanceof buildcraft.api.transport.IPipeTile pipeTile) return pipeTile.isPipeConnected(side); - return GregTech_API.mTranslocator && tileEntity instanceof codechicken.translocator.TileItemTranslocator; + return Translocator.isModLoaded() && tileEntity instanceof codechicken.translocator.TileItemTranslocator; } /** diff --git a/src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java b/src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java index e6a0ed750b..2788fd15c2 100644 --- a/src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java +++ b/src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java @@ -9,6 +9,7 @@ import static gregtech.api.enums.ItemList.Large_Fluid_Cell_StainlessSteel; import static gregtech.api.enums.ItemList.Large_Fluid_Cell_Steel; import static gregtech.api.enums.ItemList.Large_Fluid_Cell_Titanium; import static gregtech.api.enums.ItemList.Large_Fluid_Cell_TungstenSteel; +import static gregtech.api.enums.Mods.HodgePodge; import javax.annotation.Nullable; @@ -25,7 +26,6 @@ import org.lwjgl.opengl.GL11; import com.mitchej123.hodgepodge.textures.IPatchedTextureAtlasSprite; -import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; import gregtech.api.items.GT_MetaGenerated_Item; @@ -194,7 +194,7 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer { } protected void markNeedsAnimationUpdate(IIcon icon) { - if (GregTech_API.mHodgepodge && icon instanceof IPatchedTextureAtlasSprite) { + if (HodgePodge.isModLoaded() && icon instanceof IPatchedTextureAtlasSprite) { ((IPatchedTextureAtlasSprite) icon).markNeedsAnimationUpdate(); } } diff --git a/src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java b/src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java index 727064d3ea..ef06731fbe 100644 --- a/src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java +++ b/src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java @@ -1,5 +1,7 @@ package gregtech.common.render.items; +import static gregtech.api.enums.Mods.HodgePodge; + import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; @@ -13,7 +15,6 @@ import org.lwjgl.opengl.GL11; import com.mitchej123.hodgepodge.textures.IPatchedTextureAtlasSprite; import codechicken.lib.render.TextureUtils; -import gregtech.api.GregTech_API; import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer; import gregtech.api.util.GT_Utility; import gregtech.common.render.GT_RenderUtil; @@ -158,7 +159,7 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer { } protected void markNeedsAnimationUpdate(IIcon icon) { - if (GregTech_API.mHodgepodge && icon instanceof IPatchedTextureAtlasSprite) { + if (HodgePodge.isModLoaded() && icon instanceof IPatchedTextureAtlasSprite) { ((IPatchedTextureAtlasSprite) icon).markNeedsAnimationUpdate(); } } diff --git a/src/main/java/gregtech/common/render/items/UniversiumRenderer.java b/src/main/java/gregtech/common/render/items/UniversiumRenderer.java index 14e2ca2d8e..b0e2c39cb7 100644 --- a/src/main/java/gregtech/common/render/items/UniversiumRenderer.java +++ b/src/main/java/gregtech/common/render/items/UniversiumRenderer.java @@ -1,5 +1,7 @@ package gregtech.common.render.items; +import static gregtech.api.enums.Mods.Avaritia; + import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.RenderHelper; @@ -17,7 +19,6 @@ import org.lwjgl.opengl.GL12; import codechicken.lib.render.TextureUtils; import fox.spiteful.avaritia.render.CosmicRenderShenanigans; -import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer; @@ -81,7 +82,9 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer { private void magicRenderMethod(ItemRenderType type, ItemStack aStack, IIcon tIcon, boolean fluidDisplay, Object... data) { - if (!GregTech_API.mAvaritia) return; + if (!Avaritia.isModLoaded()) { + return; + } RenderItem r = RenderItem.getInstance(); Minecraft mc = Minecraft.getMinecraft(); 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_