diff --git a/.gradle/8.2.1/checksums/checksums.lock b/.gradle/8.2.1/checksums/checksums.lock index 0c497c8..0b4c425 100644 Binary files a/.gradle/8.2.1/checksums/checksums.lock and b/.gradle/8.2.1/checksums/checksums.lock differ diff --git a/.gradle/8.2.1/fileHashes/fileHashes.lock b/.gradle/8.2.1/fileHashes/fileHashes.lock index 746ccf7..cca2bea 100644 Binary files a/.gradle/8.2.1/fileHashes/fileHashes.lock and b/.gradle/8.2.1/fileHashes/fileHashes.lock differ diff --git a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java index 295605f..8f639fe 100644 --- a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java +++ b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java @@ -136,6 +136,7 @@ public class CinderLoE { public static Item spearsolidgold; public static Item whip; public static Item swordAsh; + public static Item staffAsh; public static Item daggerAsh; public static Item spearAsh; public static Item hammerAsh; @@ -351,7 +352,7 @@ public class CinderLoE { GameRegistry.registerBlock(cinderBlock, "cinderBlock"); // Ivory Block - ivoryBlock = (new IvoryBlock()); + ivoryBlock = (new IvoryBlock()); //Unobtainable GameRegistry.registerBlock(ivoryBlock, "ivoryBlock"); // Reefless Coral @@ -490,7 +491,7 @@ public class CinderLoE { * Item Registation, add up the "last ID added" upon adding a new item * Weapons will need to be linked */ - // Last ID added: 94 + // Last ID added: 95 // ==Food Items== ItemRegistration.registerItem(onion, "onion", 89); @@ -576,6 +577,7 @@ public class CinderLoE { ingotAsh = new Item().setUnlocalizedName("lotr:ingotAsh").setTextureName("lotr:ingotAsh").setCreativeTab((CreativeTabs) materials); if (MATERIAL_ASH != null) { swordAsh = (new LOTRItemSword(MATERIAL_ASH)).addWeaponDamage(4.25F).setUnlocalizedName("lotr:swordAsh").setTextureName("lotr:swordAsh"); + staffAsh = (new LOTRItemPolearm(MATERIAL_ASH)).addWeaponDamage(6.5F).setUnlocalizedName("lotr:staffAsh").setTextureName("lotr:staffAsh"); daggerAsh = (new LOTRItemDagger(MATERIAL_ASH)).addWeaponDamage(6.75F).setUnlocalizedName("lotr:daggerAsh").setTextureName("lotr:daggerAsh"); hammerAsh = (new LOTRItemHammer(MATERIAL_ASH)).addWeaponDamage(5.5F).setUnlocalizedName("lotr:hammerAsh").setTextureName("lotr:hammerAsh"); battleaxeAsh = (new LOTRItemBattleaxe(MATERIAL_ASH)).addWeaponDamage(5.5F).setUnlocalizedName("lotr:battleaxeAsh").setTextureName("lotr:battleaxeAsh"); @@ -592,6 +594,7 @@ public class CinderLoE { ItemRegistration.registerItem(bowAsh, "bowAsh", 79); ItemRegistration.registerItem(pikeAsh, "pikeAsh", 80); ItemRegistration.registerItem(spearAsh, "spearAsh", 81); + ItemRegistration.registerItem(staffAsh, "staffAsh", 95); } else { // Log an error or handle the case where the material could not be found System.err.println("Failed to find MATERIAL_ASH material for armor initialization."); @@ -603,6 +606,7 @@ public class CinderLoE { linkLOTRWeapon(bowAsh, "bowAsh"); linkLOTRWeapon(pikeAsh, "pikeAsh"); linkLOTRWeapon(spearAsh, "spearAsh"); + linkLOTRWeapon(staffAsh, "staffAsh"); // Red Dwarves redDwarfSteel = new Item().setUnlocalizedName("lotr:redDwarfSteel").setTextureName("lotr:redDwarfSteel").setCreativeTab((CreativeTabs) materials); @@ -969,6 +973,7 @@ public class CinderLoE { CinderCore.registerItemFallback(Item.getIdFromItem(ingotAsh), Item.getIdFromItem(LOTRMod.galvorn), "cinder_loe", "1.2"); CinderCore.registerItemFallback(Item.getIdFromItem(daggerAsh), Item.getIdFromItem(LOTRMod.daggerBlackUruk), "cinder_loe", "1.2"); CinderCore.registerItemFallback(Item.getIdFromItem(swordAsh), Item.getIdFromItem(LOTRMod.scimitarBlackUruk), "cinder_loe", "1.2"); + CinderCore.registerItemFallback(Item.getIdFromItem(staffAsh), Item.getIdFromItem(LOTRMod.polearmOrc), "cinder_loe", "1.2"); CinderCore.registerItemFallback(Item.getIdFromItem(hammerAsh), Item.getIdFromItem(LOTRMod.hammerBlackUruk), "cinder_loe", "1.2"); CinderCore.registerItemFallback(Item.getIdFromItem(battleaxeAsh), Item.getIdFromItem(LOTRMod.battleaxeBlackUruk), "cinder_loe", "1.2"); CinderCore.registerItemFallback(Item.getIdFromItem(pikeAsh), Item.getIdFromItem(LOTRMod.pikeDolGuldur), "cinder_loe", "1.2"); diff --git a/src/main/java/com/zivilon/cinder_loe/Materials.java b/src/main/java/com/zivilon/cinder_loe/Materials.java index 06c4aec..4ded833 100644 --- a/src/main/java/com/zivilon/cinder_loe/Materials.java +++ b/src/main/java/com/zivilon/cinder_loe/Materials.java @@ -1,5 +1,6 @@ package com.zivilon.cinder_loe; +import lotr.common.LOTRMod; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -11,6 +12,8 @@ import java.lang.reflect.Field; import com.zivilon.cinder_loe.CinderLoE; +import static lotr.common.item.LOTRMaterial.BRONZE; + public class Materials { public static void registerMaterials() { modifyMaterial("RED_DWARF", 700, 3.0F, 0.7F, 3, 7.0F, 10, CinderLoE.redDwarfSteel); @@ -22,6 +25,7 @@ public class Materials { modifyMaterial("BREE", 350, 2.5F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); modifyMaterial("BATTLENUN", 300, 3F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); modifyMaterial("ASH", 2000, 0.0F, 0.6F, 2, 7.0F, 10, CinderLoE.ingotAsh); + } public static void modifyMaterial(String fieldName, int uses, float weapon_damage, float protection, int harvest_level, float speed, int enchantability, Item crafting_item) { diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/FishBarrel.java b/src/main/java/com/zivilon/cinder_loe/blocks/FishBarrel.java index 5a385fc..3e77197 100644 --- a/src/main/java/com/zivilon/cinder_loe/blocks/FishBarrel.java +++ b/src/main/java/com/zivilon/cinder_loe/blocks/FishBarrel.java @@ -19,5 +19,6 @@ public class FishBarrel extends StaticBlockBase3 { setBlockName("lotr:fishbarrel"); setHardness(1.0F); setResistance(2.0F); + // setCreativeTab((CreativeTabs) LOTRCreativeTabs.tabDeco); } } diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/FurBundle.java b/src/main/java/com/zivilon/cinder_loe/blocks/FurBundle.java index a8e9a49..3218168 100644 --- a/src/main/java/com/zivilon/cinder_loe/blocks/FurBundle.java +++ b/src/main/java/com/zivilon/cinder_loe/blocks/FurBundle.java @@ -1,9 +1,11 @@ package com.zivilon.cinder_loe.blocks; import com.zivilon.cinder_loe.blocks.RotatableBlockBase3; +import lotr.common.LOTRCreativeTabs; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; public class FurBundle extends RotatableBlockBase3 { public FurBundle() { @@ -12,5 +14,6 @@ public class FurBundle extends RotatableBlockBase3 { setBlockName("lotr:furBundle"); setHardness(0.5F); setResistance(0.5F); + // setCreativeTab((CreativeTabs) LOTRCreativeTabs.tabDeco); } } diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/LeatherBundle.java b/src/main/java/com/zivilon/cinder_loe/blocks/LeatherBundle.java index d72a61e..de10486 100644 --- a/src/main/java/com/zivilon/cinder_loe/blocks/LeatherBundle.java +++ b/src/main/java/com/zivilon/cinder_loe/blocks/LeatherBundle.java @@ -1,9 +1,11 @@ package com.zivilon.cinder_loe.blocks; import com.zivilon.cinder_loe.blocks.RotatableBlockBase3; +import lotr.common.LOTRCreativeTabs; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; public class LeatherBundle extends RotatableBlockBase3 { public LeatherBundle() { @@ -12,5 +14,6 @@ public class LeatherBundle extends RotatableBlockBase3 { setBlockName("lotr:leatherBundle"); setHardness(0.5F); setResistance(0.5F); + // setCreativeTab((CreativeTabs) LOTRCreativeTabs.tabDeco); } } diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/ReedBale.java b/src/main/java/com/zivilon/cinder_loe/blocks/ReedBale.java index fb0f1f2..452a008 100644 --- a/src/main/java/com/zivilon/cinder_loe/blocks/ReedBale.java +++ b/src/main/java/com/zivilon/cinder_loe/blocks/ReedBale.java @@ -1,9 +1,11 @@ package com.zivilon.cinder_loe.blocks; import com.zivilon.cinder_loe.blocks.RotatableBlockBase3; +import lotr.common.LOTRCreativeTabs; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; public class ReedBale extends RotatableBlockBase3 { public ReedBale() { @@ -12,5 +14,6 @@ public class ReedBale extends RotatableBlockBase3 { setBlockName("lotr:reedBale"); setHardness(0.5F); setResistance(0.5F); + // setCreativeTab((CreativeTabs) LOTRCreativeTabs.tabDeco); } } diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/RunedDwarvenBrick.java b/src/main/java/com/zivilon/cinder_loe/blocks/RunedDwarvenBrick.java index ec033d7..0f7fb6b 100644 --- a/src/main/java/com/zivilon/cinder_loe/blocks/RunedDwarvenBrick.java +++ b/src/main/java/com/zivilon/cinder_loe/blocks/RunedDwarvenBrick.java @@ -1,5 +1,6 @@ package com.zivilon.cinder_loe.blocks; +import lotr.common.LOTRCreativeTabs; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -21,7 +22,7 @@ public class RunedDwarvenBrick extends Block { setResistance(5.0F); setBlockTextureName(Utilities.toSnakeCase("lotr:dwarven_brick_runed")); setBlockName("lotr:dwarvenBrickRuned"); - setCreativeTab((CreativeTabs)Utilities.reflected_tab_block); + // setCreativeTab((CreativeTabs) LOTRCreativeTabs.tabDeco); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/cobbleDrystone.java b/src/main/java/com/zivilon/cinder_loe/blocks/cobbleDrystone.java index 0740054..7f83184 100644 --- a/src/main/java/com/zivilon/cinder_loe/blocks/cobbleDrystone.java +++ b/src/main/java/com/zivilon/cinder_loe/blocks/cobbleDrystone.java @@ -3,6 +3,7 @@ package com.zivilon.cinder_loe.blocks; import com.zivilon.cinder_loe.util.Utilities; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lotr.common.LOTRCreativeTabs; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -17,7 +18,7 @@ public class cobbleDrystone extends Block { setResistance(5.0F); setBlockTextureName(Utilities.toSnakeCase("lotr:cobble_drystone")); setBlockName("lotr:cobbleDrystone"); - setCreativeTab((CreativeTabs)Utilities.reflected_tab_block); + // setCreativeTab((CreativeTabs) LOTRCreativeTabs.tabBlock); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/cutDrystone.java b/src/main/java/com/zivilon/cinder_loe/blocks/cutDrystone.java index 57d141a..a586938 100644 --- a/src/main/java/com/zivilon/cinder_loe/blocks/cutDrystone.java +++ b/src/main/java/com/zivilon/cinder_loe/blocks/cutDrystone.java @@ -3,6 +3,7 @@ package com.zivilon.cinder_loe.blocks; import com.zivilon.cinder_loe.util.Utilities; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lotr.common.LOTRCreativeTabs; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -17,7 +18,7 @@ public class cutDrystone extends Block { setResistance(5.0F); setBlockTextureName(Utilities.toSnakeCase("lotr:cut_drystone")); setBlockName("lotr:cutDrystone"); - setCreativeTab((CreativeTabs)Utilities.reflected_tab_block); + // setCreativeTab((CreativeTabs) LOTRCreativeTabs.tabBlock); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/plaster.java b/src/main/java/com/zivilon/cinder_loe/blocks/plaster.java index 7879480..59dbcef 100644 --- a/src/main/java/com/zivilon/cinder_loe/blocks/plaster.java +++ b/src/main/java/com/zivilon/cinder_loe/blocks/plaster.java @@ -3,6 +3,7 @@ package com.zivilon.cinder_loe.blocks; import com.zivilon.cinder_loe.util.Utilities; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lotr.common.LOTRCreativeTabs; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -17,7 +18,7 @@ public class plaster extends Block { setResistance(5.0F); setBlockTextureName(Utilities.toSnakeCase("lotr:plaster")); setBlockName("lotr:plaster"); - setCreativeTab((CreativeTabs)Utilities.reflected_tab_block); + // setCreativeTab((CreativeTabs) LOTRCreativeTabs.tabBlock); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/zivilon/cinder_loe/blocks/reeflessCoral.java b/src/main/java/com/zivilon/cinder_loe/blocks/reeflessCoral.java index 76c97f8..766e2cc 100644 --- a/src/main/java/com/zivilon/cinder_loe/blocks/reeflessCoral.java +++ b/src/main/java/com/zivilon/cinder_loe/blocks/reeflessCoral.java @@ -3,6 +3,7 @@ package com.zivilon.cinder_loe.blocks; import com.zivilon.cinder_loe.util.Utilities; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lotr.common.LOTRCreativeTabs; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -17,7 +18,7 @@ public class reeflessCoral extends Block { setResistance(5.0F); setBlockTextureName(Utilities.toSnakeCase("lotr:reeflessCoral")); setBlockName("lotr:reeflessCoral"); - setCreativeTab((CreativeTabs)Utilities.reflected_tab_block); + // setCreativeTab((CreativeTabs) LOTRCreativeTabs.tabDeco); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java index e8c43ef..4c95630 100644 --- a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java +++ b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java @@ -25,7 +25,7 @@ public class LOTRWeaponLinker implements IClassTransformer { "frostblade", "spearsolidgold", "whip", "swordBree", "maceArnor", - "daggerAsh","bowAsh","hammerAsh","pikeAsh","battleaxeAsh","swordAsh","spearAsh"); + "daggerAsh","bowAsh","hammerAsh","pikeAsh","battleaxeAsh","swordAsh","spearAsh", "staffAsh"); } return basicClass; } diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java index d58d501..2d456ed 100644 --- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java +++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java @@ -53,6 +53,8 @@ public class MixinLOTRContainerAnvil { 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()) diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRMaterial.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRMaterial.java index 030695b..2b79e7d 100644 --- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRMaterial.java +++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRMaterial.java @@ -3,6 +3,7 @@ package com.zivilon.cinder_loe.mixins; import net.minecraft.item.Item; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; import lotr.common.item.LOTRMaterial; @@ -10,11 +11,48 @@ import lotr.common.item.LOTRMaterial; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; import com.zivilon.cinder_loe.CinderLoE; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(LOTRMaterial.class) -public class MixinLOTRMaterial { +public abstract class MixinLOTRMaterial { + + @Shadow + public static LOTRMaterial BRONZE; + + @Inject(method = "", at = @At("RETURN")) + private static void modifyMaterial(CallbackInfo ci) { + try { + // Get the BRONZE field from LOTRMaterial + Field bronzeField = LOTRMaterial.class.getDeclaredField("BRONZE"); + bronzeField.setAccessible(true); + + // Get the current BRONZE instance + LOTRMaterial bronze = (LOTRMaterial) bronzeField.get(null); + + // Use reflection to set the 'uses' field of the BRONZE instance to 2000 + Field usesField = LOTRMaterial.class.getDeclaredField("uses"); + usesField.setAccessible(true); + usesField.setInt(bronze, 2000); + + // Use reflection to set the 'protection' field of the BRONZE instance to 0.8f + Field protectionField = LOTRMaterial.class.getDeclaredField("protection"); + protectionField.setAccessible(true); + float[] protectionValues = (float[]) protectionField.get(null); + int bronzeIndex = LOTRMaterial.allLOTRMaterials.indexOf(bronze); + protectionValues[bronzeIndex] = 0.8f; + + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + } + + static { try { Class lotrMaterialClass = Class.forName("lotr.common.item.LOTRMaterial"); diff --git a/src/main/java/com/zivilon/cinder_loe/recipes.java b/src/main/java/com/zivilon/cinder_loe/recipes.java index 4b68eb1..f0617b7 100644 --- a/src/main/java/com/zivilon/cinder_loe/recipes.java +++ b/src/main/java/com/zivilon/cinder_loe/recipes.java @@ -32,7 +32,7 @@ public class recipes { public static void registerGeneralRecipes() { GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.bowAsh), new Object[] { " XS", "X S", " XS", - Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('S'), "string" })); + Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('S'), Items.string })); GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.spearAsh), new Object[] { " X", " Y ", "Y ", Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('Y'), "stickWood" })); GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.swordAsh), new Object[] { " X ", " X ", " Y ",