2
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
4.0 KiB
Java

package com.zivilon.cinder_loe.mixins;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import lotr.common.inventory.LOTRContainerAnvil;
import lotr.common.LOTRMod;
import lotr.common.item.LOTRMaterial;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.item.ItemTool;
import com.zivilon.cinder_loe.CinderLoE;
import java.util.Objects;
@Mixin(LOTRContainerAnvil.class)
public class MixinLOTRContainerAnvil {
/**
* @author Shinare
* @reason KeyLime
*/
@Overwrite(remap = false)
public boolean isRepairMaterial(ItemStack inputItem, ItemStack materialItem) {
if (inputItem.getItem().getIsRepairable(inputItem, materialItem))
return true;
Item item = inputItem.getItem();
if (item == Items.bow && LOTRMod.rohanBow.getIsRepairable(inputItem, materialItem))
return true;
if (item instanceof net.minecraft.item.ItemFishingRod && materialItem.getItem() == Items.string)
return true;
if (item instanceof net.minecraft.item.ItemShears && materialItem.getItem() == Items.iron_ingot)
return true;
if (item instanceof lotr.common.item.LOTRItemChisel && materialItem.getItem() == Items.iron_ingot)
return true;
if (item instanceof net.minecraft.item.ItemEnchantedBook && materialItem.getItem() == Items.paper)
return true;
Item.ToolMaterial material = null;
if (item instanceof ItemTool) {
material = Item.ToolMaterial.valueOf(((ItemTool)item).getToolMaterialName());
} else if (item instanceof ItemSword) {
material = Item.ToolMaterial.valueOf(((ItemSword)item).getToolMaterialName());
}
if (material == Item.ToolMaterial.WOOD || material == LOTRMaterial.MOREDAIN_WOOD.toToolMaterial())
return LOTRMod.isOreNameEqual(materialItem, "plankWood");
if (material == LOTRMaterial.MALLORN.toToolMaterial())
return (materialItem.getItem() == Item.getItemFromBlock(LOTRMod.planks) && materialItem.getItemDamage() == 1);
if (material == LOTRMaterial.MALLORN_MACE.toToolMaterial())
return (materialItem.getItem() == Item.getItemFromBlock(LOTRMod.wood) && materialItem.getItemDamage() == 1);
if (material == CinderLoE.MATERIAL_RED_DWARF.toToolMaterial())
return (materialItem.getItem() == CinderLoE.redDwarfSteel);
if (material == CinderLoE.MATERIAL_ASH.toToolMaterial())
return (materialItem.getItem() == CinderLoE.ingotAsh);
if (material == CinderLoE.MATERIAL_LIMWAITH_BONE.toToolMaterial())
return LOTRMod.isOreNameEqual(materialItem, "bone");
if (material == CinderLoE.EVENT.toToolMaterial())
return LOTRMod.isOreNameEqual(materialItem, "ice");
if (material == CinderLoE.MATERIAL_BREE.toToolMaterial())
return (materialItem.getItem() == Items.iron_ingot);
if (item instanceof ItemArmor armor) {
ItemArmor.ArmorMaterial armorMaterial = armor.getArmorMaterial();
if (armorMaterial == LOTRMaterial.BONE.toArmorMaterial())
return LOTRMod.isOreNameEqual(materialItem, "bone");
if (armorMaterial == CinderLoE.MATERIAL_RED_DWARF.toArmorMaterial())
return (materialItem.getItem() == CinderLoE.redDwarfSteel);
if (armorMaterial == CinderLoE.MATERIAL_LIMWAITH_WOOD.toArmorMaterial())
return (materialItem.getItem() == Item.getItemFromBlock(LOTRMod.planks) && materialItem.getItemDamage() == 15);
if (armorMaterial == CinderLoE.MATERIAL_BREE.toArmorMaterial())
return (materialItem.getItem() == Items.iron_ingot);
if (armorMaterial == CinderLoE.MATERIAL_BATTLENUN.toArmorMaterial())
return (materialItem.getItem() == Items.iron_ingot);
}
return false;
}
}