package gregtech.loaders.oreprocessing;
import static gregtech.api.recipe.RecipeMaps.assemblerRecipes;
import static gregtech.api.recipe.RecipeMaps.extruderRecipes;
import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes;
import static gregtech.api.recipe.RecipeMaps.formingPressRecipes;
import static gregtech.api.util.GT_RecipeBuilder.MINUTES;
import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
import static gregtech.api.util.GT_Utility.calculateRecipeEU;
import net.minecraft.item.ItemStack;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SubTag;
import gregtech.api.enums.TierEU;
import gregtech.api.enums.ToolDictNames;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Proxy;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
import gregtech.common.items.ID_MetaTool_01;
public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeRegistrator { // TODO COMPARE WITH OLD TOOL
// HEAD??? generator
public ProcessingToolHead() {
OrePrefixes.toolHeadAxe.add(this);
OrePrefixes.toolHeadBuzzSaw.add(this);
OrePrefixes.toolHeadChainsaw.add(this);
OrePrefixes.toolHeadDrill.add(this);
OrePrefixes.toolHeadFile.add(this);
OrePrefixes.toolHeadHoe.add(this);
OrePrefixes.toolHeadPickaxe.add(this);
OrePrefixes.toolHeadPlow.add(this);
OrePrefixes.toolHeadSaw.add(this);
OrePrefixes.toolHeadSense.add(this);
OrePrefixes.toolHeadShovel.add(this);
OrePrefixes.toolHeadSword.add(this);
OrePrefixes.toolHeadUniversalSpade.add(this);
OrePrefixes.toolHeadWrench.add(this);
OrePrefixes.toolHeadHammer.add(this);
OrePrefixes.turbineBlade.add(this);
}
@Override
public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName,
ItemStack aStack) {
boolean aSpecialRecipeReq1 = aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)
&& !aMaterial.contains(SubTag.NO_SMASHING);
boolean aSpecialRecipeReq2 = aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)
&& !aMaterial.contains(SubTag.NO_WORKING);
boolean aNoWorking = aMaterial.contains(SubTag.NO_WORKING);
boolean aProducesSoftMallet = aMaterial.contains(SubTag.BOUNCY) || aMaterial.contains(SubTag.WOOD)
|| aMaterial.contains(SubTag.SOFT);
switch (aPrefix) {
case toolHeadAxe -> {
GT_ModHandler.addShapelessCraftingRecipe(
GT_MetaGenerated_Tool_01.INSTANCE
.getToolWithStats(ID_MetaTool_01.AXE.ID, 1, aMaterial, aMaterial.mHandleMaterial, null),
new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) });
if (GT_OreDictUnificator.get(OrePrefixes.stick