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.GTRecipeBuilder.MINUTES;
import static gregtech.api.util.GTRecipeBuilder.SECONDS;
import static gregtech.api.util.GTUtility.calculateRecipeEU;
import net.minecraft.item.ItemStack;
import gregtech.api.enums.GTValues;
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.GTModHandler;
import gregtech.api.util.GTOreDictUnificator;
import gregtech.api.util.GTUtility;
import gregtech.common.GTProxy;
import gregtech.common.items.IDMetaTool01;
import gregtech.common.items.MetaGeneratedTool01;
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 -> {
GTModHandler.addShapelessCraftingRecipe(
MetaGeneratedTool01.INSTANCE
.getToolWithStats(IDMetaTool01.AXE.ID, 1, aMaterial, aMaterial.mHandleMaterial, null),
new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) });
if (GTOreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) {
GTValues.RA.stdBuilder