fix: make the easy tool repair compatible with TGregworks (#23)

This commit is contained in:
Jordan Rey authored and GitHub committed 2025-09-17 13:17:44 +02:00
1 parent 5e90c9a861
commit defe702067
3 files changed
+23 -4

No files matched your search

+1
View File
@@ -3,6 +3,7 @@
dependencies {
api("com.github.GTNewHorizons:TinkersConstruct:1.13.38-GTNH:dev")
api("com.github.GTNewHorizons:NotEnoughItems:2.7.57-GTNH:dev")
compileOnly("com.github.GTNewHorizons:TinkersGregworks:GTNH-1.0.27:dev")
compileOnly("com.github.GTNewHorizons:Railcraft:9.16.30:dev")
compileOnly("com.github.GTNewHorizons:BuildCraft:7.1.43:dev")
@@ -6,11 +6,14 @@ import net.minecraft.item.crafting.IRecipe;
import net.minecraft.world.World;
import net.minecraftforge.oredict.RecipeSorter;
import cpw.mods.fml.common.Optional;
import iguanaman.iguanatweakstconstruct.reference.Reference;
import iguanaman.iguanatweakstconstruct.util.ModSupportHelper;
import tconstruct.library.crafting.ModifyBuilder;
import tconstruct.library.modifier.ItemModifier;
import tconstruct.library.tools.ToolCore;
import tconstruct.modifiers.tools.ModToolRepair;
import vexatos.tgregworks.integration.modifiers.ModTGregRepair;
public class RepairCraftingRecipe implements IRecipe {
@@ -23,18 +26,32 @@ public class RepairCraftingRecipe implements IRecipe {
"");
}
private ModToolRepair modifier = null;
private ItemModifier modifier = null;
private ItemStack modifiedTool = null;
public RepairCraftingRecipe() {
for (ItemModifier mod : ModifyBuilder.instance.itemModifiers) if (mod instanceof ModToolRepair) {
modifier = (ModToolRepair) mod;
break;
for (ItemModifier mod : ModifyBuilder.instance.itemModifiers) {
// If TGregworks is present, use ModTGregRepair instead of ModToolRepair
if (ModSupportHelper.TGregworks && isTGregRepairModifier(mod)) {
modifier = mod;
break;
} else if (mod instanceof ModToolRepair) {
modifier = mod;
break;
}
}
}
@Optional.Method(modid = "TGregworks")
private boolean isTGregRepairModifier(ItemModifier mod) {
return mod instanceof ModTGregRepair;
}
@Override
public boolean matches(InventoryCrafting inventoryCrafting, World world) {
// if no compatible repair modifier was found during init, this recipe can't work
if (modifier == null) return false;
ItemStack tool = null;
ItemStack[] input = new ItemStack[inventoryCrafting.getSizeInventory()];
@@ -13,6 +13,7 @@ public final class ModSupportHelper {
public static final boolean Metallurgy = Loader.isModLoaded("Metallurgy");
public static final boolean Natura = Loader.isModLoaded("Natura");
public static final boolean AppliedEnergistics2 = Loader.isModLoaded("appliedenergistics2");
public static final boolean TGregworks = Loader.isModLoaded("TGregworks");
public static final boolean ThermalFoundation = Loader.isModLoaded("ThermalFoundation");
}