From 70a2444c9a472b60ed00db5b1917c90ef6afdd19 Mon Sep 17 00:00:00 2001 From: Shinare Date: Sat, 28 Jun 2025 21:19:36 +0300 Subject: [PATCH] Added Sunlit Warden and Orthanc Guard armor sets --- .../com/zivilon/cinder_loe/CinderLoE.java | 118 +++++++++++++----- .../com/zivilon/cinder_loe/Materials.java | 2 + .../client/model/ModelHelmetSunlitWarden.java | 67 ++++++++++ .../client/model/OrthancGuardHelmet.java | 70 +++++++++++ .../coremod/LOTRMaterialTransformer.java | 3 +- .../cinder_loe/coremod/LOTRWeaponLinker.java | 3 +- .../cinder_loe/items/LoEGreatSword.java | 8 +- .../mixins/MixinLOTRArmorModels.java | 2 + .../mixins/MixinLOTRContainerAnvil.java | 7 +- .../assets/cinder_loe/lang/en_US.lang | 23 +++- .../assets/lotr/armor/orthanc_guard_1.png | Bin 0 -> 987 bytes .../assets/lotr/armor/orthanc_guard_2.png | Bin 0 -> 708 bytes .../lotr/armor/orthanc_guard_helmet.png | Bin 0 -> 1608 bytes .../assets/lotr/armor/sunlit_warden_1.png | Bin 0 -> 1073 bytes .../assets/lotr/armor/sunlit_warden_2.png | Bin 0 -> 411 bytes .../lotr/armor/sunlit_warden_helmet.png | Bin 0 -> 1288 bytes .../lotr/textures/items/bodyOrthancGuard.png | Bin 0 -> 356 bytes .../lotr/textures/items/bodySunlitWarden.png | Bin 0 -> 345 bytes .../lotr/textures/items/bootsOrthancGuard.png | Bin 0 -> 338 bytes .../lotr/textures/items/bootsSunlitWarden.png | Bin 0 -> 248 bytes .../lotr/textures/items/greatswordLight.png | Bin 0 -> 504 bytes .../textures/items/helmetOrthancGuard.png | Bin 0 -> 379 bytes .../textures/items/helmetSunlitWarden.png | Bin 0 -> 301 bytes .../textures/items/large2/greatswordLight.png | Bin 0 -> 727 bytes .../items/large2/greatswordLight_glowing.png | Bin 0 -> 695 bytes .../items/{large => large2}/spearUnnamed.png | Bin .../{large => large2}/spearUnnamed.png.mcmeta | 0 .../lotr/textures/items/legsOrthancGuard.png | Bin 0 -> 322 bytes .../lotr/textures/items/legsSunlitWarden.png | Bin 0 -> 269 bytes 29 files changed, 265 insertions(+), 38 deletions(-) create mode 100644 src/main/java/com/zivilon/cinder_loe/client/model/ModelHelmetSunlitWarden.java create mode 100644 src/main/java/com/zivilon/cinder_loe/client/model/OrthancGuardHelmet.java create mode 100644 src/main/resources/assets/lotr/armor/orthanc_guard_1.png create mode 100644 src/main/resources/assets/lotr/armor/orthanc_guard_2.png create mode 100644 src/main/resources/assets/lotr/armor/orthanc_guard_helmet.png create mode 100644 src/main/resources/assets/lotr/armor/sunlit_warden_1.png create mode 100644 src/main/resources/assets/lotr/armor/sunlit_warden_2.png create mode 100644 src/main/resources/assets/lotr/armor/sunlit_warden_helmet.png create mode 100644 src/main/resources/assets/lotr/textures/items/bodyOrthancGuard.png create mode 100644 src/main/resources/assets/lotr/textures/items/bodySunlitWarden.png create mode 100644 src/main/resources/assets/lotr/textures/items/bootsOrthancGuard.png create mode 100644 src/main/resources/assets/lotr/textures/items/bootsSunlitWarden.png create mode 100644 src/main/resources/assets/lotr/textures/items/greatswordLight.png create mode 100644 src/main/resources/assets/lotr/textures/items/helmetOrthancGuard.png create mode 100644 src/main/resources/assets/lotr/textures/items/helmetSunlitWarden.png create mode 100644 src/main/resources/assets/lotr/textures/items/large2/greatswordLight.png create mode 100644 src/main/resources/assets/lotr/textures/items/large2/greatswordLight_glowing.png rename src/main/resources/assets/lotr/textures/items/{large => large2}/spearUnnamed.png (100%) rename src/main/resources/assets/lotr/textures/items/{large => large2}/spearUnnamed.png.mcmeta (100%) create mode 100644 src/main/resources/assets/lotr/textures/items/legsOrthancGuard.png create mode 100644 src/main/resources/assets/lotr/textures/items/legsSunlitWarden.png diff --git a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java index e8a34b9..6c9555b 100644 --- a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java +++ b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java @@ -129,6 +129,8 @@ public class CinderLoE { public static LOTRMaterial MATERIAL_JADE; public static LOTRMaterial MATERIAL_GILDEDGALVORN; public static LOTRMaterial MATERIAL_ARTIFACT; + public static LOTRMaterial MATERIAL_SUNLIT_WARDEN; + public static LOTRMaterial MATERIAL_ORTHANC_GUARD; // Blocks // public static Block barricade; public static Block cinderBlock; @@ -226,7 +228,6 @@ public class CinderLoE { public static Item forgingKit; public static Item fieldRepairKit; public static Item cinderFurItem; - public static Item effigyOfWrath; // Common tools/weapons public static Item whip; @@ -260,6 +261,10 @@ public class CinderLoE { public static Item bodyDorwinionElite; public static Item legsDorwinionElite; public static Item bootsDorwinionElite; + public static Item helmetOrthancGuard; + public static Item bodyOrthancGuard; + public static Item legsOrthancGuard; + public static Item bootsOrthancGuard; // public static Item bowserpent; //public static Item swordUsurper; @@ -336,6 +341,15 @@ public class CinderLoE { public static Item sarumanWhiteStaff; public static Item mouthofsauronSword; + // Dungeons + public static Item effigyOfWrath; + public static Item greatswordLight; + public static Item helmetSunlitWarden; + public static Item bodySunlitWarden; + public static Item legsSunlitWarden; + public static Item bootsSunlitWarden; + + // Relics public static Item welfRelic; public static Item ulukai; @@ -354,19 +368,19 @@ public class CinderLoE { @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { CinderLoE_Config.init(event); - Materials.registerMaterials(); - registerBlocks(); - registerItems(); - ItemRegistration.registerItems(); PacketRegistration.register(); - registerEntities(); - modEventHandler = new CinderEventHandler(); LoEPotions.registerPotions(); CarriageRoadRegistry.init(); } @Mod.EventHandler public void init(FMLInitializationEvent event) { + Materials.registerMaterials(); + registerBlocks(); + registerItems(); + ItemRegistration.registerItems(); + registerEntities(); + modEventHandler = new CinderEventHandler(); CommonProxy proxy = event.getSide() == Side.CLIENT ? new ClientProxy() : new ServerProxy(); proxy.setup(); if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { @@ -684,7 +698,10 @@ public class CinderLoE { * ID 6900-6999 * Food and crops * - * ID 7000-7199 + * ID 7000-7099 + * Dungeon items + * + * ID 7100-7199 * Unassigned * * ID 7200-7299 @@ -693,7 +710,7 @@ public class CinderLoE { // ==Admin Tools== unitLevelTool = (new unitLevelTool()).setUnlocalizedName("lotr:unitLevelTool").setTextureName("stick"); - ItemRegistration.register(unitLevelTool, "unitLevelTool", 7000); + ItemRegistration.register(unitLevelTool, "unitLevelTool", 7000); // WHY 7000???? // ==Food Items== @@ -758,10 +775,10 @@ public class CinderLoE { linkLOTRWeapon(welfRelic, "welfRelic"); //Great swords idk where to put them - greatswordAngmar = (new LoEGreatSword(LOTRMaterial.ANGMAR)).addWeaponDamage(1.0f).setUnlocalizedName("lotr:greatswordAngmar").setTextureName("lotr:greatswordAngmar"); - greatswordLindon = new LoEGreatSword(LOTRMaterial.HIGH_ELVEN).addWeaponDamage(1.0f).setIsElvenBlade().setUnlocalizedName("lotr:greatswordLindon").setTextureName("lotr:greatswordLindon"); - greatswordDale = (new LoEGreatSword(LOTRMaterial.DALE)).addWeaponDamage(1.0f).setUnlocalizedName("lotr:greatswordDale").setTextureName("lotr:greatswordDale"); - greatswordNumenor = (new LoEGreatSword(LOTRMaterial.BLACK_NUMENOREAN)).addWeaponDamage(1.0f).setUnlocalizedName("lotr:greatswordNumenor").setTextureName("lotr:greatswordNumenor"); + greatswordAngmar = (new LoEGreatSword(LOTRMaterial.ANGMAR, LOTRMod.orcSteel)).addWeaponDamage(1.0f).setUnlocalizedName("lotr:greatswordAngmar").setTextureName("lotr:greatswordAngmar"); + greatswordLindon = new LoEGreatSword(LOTRMaterial.HIGH_ELVEN, LOTRMod.elfSteel).addWeaponDamage(1.0f).setIsElvenBlade().setUnlocalizedName("lotr:greatswordLindon").setTextureName("lotr:greatswordLindon"); + greatswordDale = (new LoEGreatSword(LOTRMaterial.DALE, Items.iron_ingot)).addWeaponDamage(1.0f).setUnlocalizedName("lotr:greatswordDale").setTextureName("lotr:greatswordDale"); + greatswordNumenor = (new LoEGreatSword(LOTRMaterial.BLACK_NUMENOREAN, Items.iron_ingot)).addWeaponDamage(1.0f).setUnlocalizedName("lotr:greatswordNumenor").setTextureName("lotr:greatswordNumenor"); ItemRegistration.register(greatswordAngmar,"greatswordAngmar",6707); ItemRegistration.register(greatswordLindon,"greatswordLindon",6708); @@ -798,12 +815,10 @@ public class CinderLoE { forgingKit = (new ForgingKit()); fieldRepairKit = new FieldRepairKit().setUnlocalizedName("lotr:field_repair_kit").setTextureName("lotr:field_repair_kit"); - effigyOfWrath = new LOTRItemEnchantment(LOTREnchantment.getEnchantmentByName("wrath")).setUnlocalizedName("lotr:effigy_of_wrath").setTextureName("lotr:effigy_of_wrath"); ItemRegistration.register(frostblade, "frostblade", 6200); ItemRegistration.register(forgingKit,"forgingKit",6001); ItemRegistration.register(fieldRepairKit,"fieldRepairKit",6002); - ItemRegistration.register(effigyOfWrath,"effigyOfWrath",6005); ItemRegistration.register(whip, "whip", 6110); ItemRegistration.register(daggervoid, "daggerVoid", 6201); ItemRegistration.register(spearsolidgold, "spearsolidgold", 6202); @@ -996,10 +1011,10 @@ public class CinderLoE { MATERIAL_SERPENT = getLOTRMaterialByName("SERPENT"); if (MATERIAL_SERPENT != null) { - helmetserpent = (new LoEArmor(MATERIAL_SERPENT, 0, LOTRMod.bronze)).setUnlocalizedName("lotr:helmetserpent").setTextureName("lotr:helmetserpent").setCreativeTab(null); - bodyserpent = (new LoEArmor(MATERIAL_SERPENT, 1, "chestplate", LOTRMod.bronze)).setUnlocalizedName("lotr:bodyserpent").setTextureName("lotr:bodyserpent").setCreativeTab(null); - legsserpent = (new LoEArmor(MATERIAL_SERPENT, 2, LOTRMod.bronze)).setUnlocalizedName("lotr:legsserpent").setTextureName("lotr:legsserpent").setCreativeTab(null); - bootsserpent = (new LoEArmor(MATERIAL_SERPENT, 3, LOTRMod.bronze)).setUnlocalizedName("lotr:bootsserpent").setTextureName("lotr:bootsserpent").setCreativeTab(null); + helmetserpent = (new LoEArmor(MATERIAL_SERPENT, 0, LOTRMod.bronze)).setUnlocalizedName("lotr:helmetserpent").setTextureName("lotr:helmetserpent"); + bodyserpent = (new LoEArmor(MATERIAL_SERPENT, 1, "chestplate", LOTRMod.bronze)).setUnlocalizedName("lotr:bodyserpent").setTextureName("lotr:bodyserpent"); + legsserpent = (new LoEArmor(MATERIAL_SERPENT, 2, LOTRMod.bronze)).setUnlocalizedName("lotr:legsserpent").setTextureName("lotr:legsserpent"); + bootsserpent = (new LoEArmor(MATERIAL_SERPENT, 3, LOTRMod.bronze)).setUnlocalizedName("lotr:bootsserpent").setTextureName("lotr:bootsserpent"); ItemRegistration.register(helmetserpent, "helmetserpent", 6800); ItemRegistration.register(bodyserpent, "bodyserpent", 6801); @@ -1010,10 +1025,10 @@ public class CinderLoE { } MATERIAL_USURPER = getLOTRMaterialByName("USURPER"); if (MATERIAL_USURPER != null) { - helmetUsurper = (new LoEArmor(MATERIAL_USURPER, 0, "helmet", Items.iron_ingot)).setUnlocalizedName("lotr:helmetUsurper").setTextureName("lotr:helmetUsurper").setCreativeTab(null); - bodyUsurper = (new LoEArmor(MATERIAL_USURPER, 1, Items.iron_ingot)).setUnlocalizedName("lotr:bodyUsurper").setTextureName("lotr:bodyUsurper").setCreativeTab(null); - legsUsurper = (new LoEArmor(MATERIAL_USURPER, 2, Items.iron_ingot)).setUnlocalizedName("lotr:legsUsurper").setTextureName("lotr:legsUsurper").setCreativeTab(null); - bootsUsurper = (new LoEArmor(MATERIAL_USURPER, 3, Items.iron_ingot)).setUnlocalizedName("lotr:bootsUsurper").setTextureName("lotr:bootsUsurper").setCreativeTab(null); + helmetUsurper = (new LoEArmor(MATERIAL_USURPER, 0, "helmet", Items.iron_ingot)).setUnlocalizedName("lotr:helmetUsurper").setTextureName("lotr:helmetUsurper"); + bodyUsurper = (new LoEArmor(MATERIAL_USURPER, 1, Items.iron_ingot)).setUnlocalizedName("lotr:bodyUsurper").setTextureName("lotr:bodyUsurper"); + legsUsurper = (new LoEArmor(MATERIAL_USURPER, 2, Items.iron_ingot)).setUnlocalizedName("lotr:legsUsurper").setTextureName("lotr:legsUsurper"); + bootsUsurper = (new LoEArmor(MATERIAL_USURPER, 3, Items.iron_ingot)).setUnlocalizedName("lotr:bootsUsurper").setTextureName("lotr:bootsUsurper"); ItemRegistration.register(helmetUsurper, "helmetUsurper", 6804); @@ -1044,10 +1059,10 @@ public class CinderLoE { MATERIAL_GILDEDGALVORN = getLOTRMaterialByName("GILDEDGALVORN"); if (MATERIAL_GILDEDGALVORN != null) { - helmetGildedGalvorn = (new LoEArmor(MATERIAL_GILDEDGALVORN, 0, "helmet", LOTRMod.galvorn)).setUnlocalizedName("lotr:helmetGildedGalvorn").setTextureName("lotr:helmetGildedGalvorn").setCreativeTab(null); - bodyGildedGalvorn = (new LoEArmor(MATERIAL_GILDEDGALVORN, 1, LOTRMod.galvorn)).setUnlocalizedName("lotr:bodyGildedGalvorn").setTextureName("lotr:bodyGildedGalvorn").setCreativeTab(null); - legsGildedGalvorn = (new LoEArmor(MATERIAL_GILDEDGALVORN, 2, LOTRMod.galvorn)).setUnlocalizedName("lotr:legsGildedGalvorn").setTextureName("lotr:legsGildedGalvorn").setCreativeTab(null); - bootsGildedGalvorn = (new LoEArmor(MATERIAL_GILDEDGALVORN, 3, LOTRMod.galvorn)).setUnlocalizedName("lotr:bootsGildedGalvorn").setTextureName("lotr:bootsGildedGalvorn").setCreativeTab(null); + helmetGildedGalvorn = (new LoEArmor(MATERIAL_GILDEDGALVORN, 0, "helmet", LOTRMod.galvorn)).setUnlocalizedName("lotr:helmetGildedGalvorn").setTextureName("lotr:helmetGildedGalvorn"); + bodyGildedGalvorn = (new LoEArmor(MATERIAL_GILDEDGALVORN, 1, LOTRMod.galvorn)).setUnlocalizedName("lotr:bodyGildedGalvorn").setTextureName("lotr:bodyGildedGalvorn"); + legsGildedGalvorn = (new LoEArmor(MATERIAL_GILDEDGALVORN, 2, LOTRMod.galvorn)).setUnlocalizedName("lotr:legsGildedGalvorn").setTextureName("lotr:legsGildedGalvorn"); + bootsGildedGalvorn = (new LoEArmor(MATERIAL_GILDEDGALVORN, 3, LOTRMod.galvorn)).setUnlocalizedName("lotr:bootsGildedGalvorn").setTextureName("lotr:bootsGildedGalvorn"); ItemRegistration.register(helmetGildedGalvorn, "helmetGildedGalvorn", 6813); ItemRegistration.register(bodyGildedGalvorn, "bodyGildedGalvorn", 6814); @@ -1059,10 +1074,10 @@ public class CinderLoE { MATERIAL_ESGAROTH = getLOTRMaterialByName("ESGAROTH"); if (MATERIAL_ESGAROTH != null) { - helmetEsgaroth = (new LoEArmor(MATERIAL_ESGAROTH, 0, "helmet", Items.iron_ingot)).setUnlocalizedName("lotr:helmetEsgaroth").setTextureName("lotr:helmetEsgaroth").setCreativeTab(null); - bodyEsgaroth = (new LoEArmor(MATERIAL_ESGAROTH, 1, Items.iron_ingot)).setUnlocalizedName("lotr:bodyEsgaroth").setTextureName("lotr:bodyEsgaroth").setCreativeTab(null); - legsEsgaroth = (new LoEArmor(MATERIAL_ESGAROTH, 2, Items.iron_ingot)).setUnlocalizedName("lotr:legsEsgaroth").setTextureName("lotr:legsEsgaroth").setCreativeTab(null); - bootsEsgaroth = (new LoEArmor(MATERIAL_ESGAROTH, 3, Items.iron_ingot)).setUnlocalizedName("lotr:bootsEsgaroth").setTextureName("lotr:bootsEsgaroth").setCreativeTab(null); + helmetEsgaroth = (new LoEArmor(MATERIAL_ESGAROTH, 0, "helmet", Items.iron_ingot)).setUnlocalizedName("lotr:helmetEsgaroth").setTextureName("lotr:helmetEsgaroth"); + bodyEsgaroth = (new LoEArmor(MATERIAL_ESGAROTH, 1, Items.iron_ingot)).setUnlocalizedName("lotr:bodyEsgaroth").setTextureName("lotr:bodyEsgaroth"); + legsEsgaroth = (new LoEArmor(MATERIAL_ESGAROTH, 2, Items.iron_ingot)).setUnlocalizedName("lotr:legsEsgaroth").setTextureName("lotr:legsEsgaroth"); + bootsEsgaroth = (new LoEArmor(MATERIAL_ESGAROTH, 3, Items.iron_ingot)).setUnlocalizedName("lotr:bootsEsgaroth").setTextureName("lotr:bootsEsgaroth"); ItemRegistration.register(helmetEsgaroth, "helmetEsgaroth", 6817); @@ -1125,6 +1140,47 @@ public class CinderLoE { System.err.println("Failed to find ARNOR material for armor initialization."); } linkLOTRWeapon(maceArnor, "maceArnor"); + + // Sunlit Warden + MATERIAL_ORTHANC_GUARD = getLOTRMaterialByName("ORTHANC_GUARD"); + if (MATERIAL_ORTHANC_GUARD != null) { + helmetOrthancGuard = (new LoEArmor(MATERIAL_ORTHANC_GUARD, 0, "helmet", LOTRMod.urukSteel)).setUnlocalizedName("lotr:helmetOrthancGuard").setTextureName("lotr:helmetOrthancGuard"); + bodyOrthancGuard = (new LoEArmor(MATERIAL_ORTHANC_GUARD, 1, LOTRMod.urukSteel)).setUnlocalizedName("lotr:bodyOrthancGuard").setTextureName("lotr:bodyOrthancGuard"); + legsOrthancGuard = (new LoEArmor(MATERIAL_ORTHANC_GUARD, 2, LOTRMod.urukSteel)).setUnlocalizedName("lotr:legsOrthancGuard").setTextureName("lotr:legsOrthancGuard"); + bootsOrthancGuard = (new LoEArmor(MATERIAL_ORTHANC_GUARD, 3, LOTRMod.urukSteel)).setUnlocalizedName("lotr:bootsOrthancGuard").setTextureName("lotr:bootsOrthancGuard"); + + ItemRegistration.register(helmetOrthancGuard, "helmetOrthancGuard", 6465); + ItemRegistration.register(bodyOrthancGuard, "bodyOrthancGuard", 6466); + ItemRegistration.register(legsOrthancGuard, "legsOrthancGuard", 6467); + ItemRegistration.register(bootsOrthancGuard, "bootsOrthancGuard", 6468); + } else { + System.err.println("Failed to find ORTHANC_GUARD material for armor initialization."); + } + + /** + * Dungeon equipment + */ + + // Sunlit Warden + MATERIAL_SUNLIT_WARDEN = getLOTRMaterialByName("SUNLIT_WARDEN"); + if (MATERIAL_SUNLIT_WARDEN != null) { + helmetSunlitWarden = (new LoEArmor(MATERIAL_SUNLIT_WARDEN, 0, "helmet", LOTRMod.elfSteel)).setUnlocalizedName("lotr:helmetSunlitWarden").setTextureName("lotr:helmetSunlitWarden"); + bodySunlitWarden = (new LoEArmor(MATERIAL_SUNLIT_WARDEN, 1, LOTRMod.elfSteel)).setUnlocalizedName("lotr:bodySunlitWarden").setTextureName("lotr:bodySunlitWarden"); + legsSunlitWarden = (new LoEArmor(MATERIAL_SUNLIT_WARDEN, 2, LOTRMod.elfSteel)).setUnlocalizedName("lotr:legsSunlitWarden").setTextureName("lotr:legsSunlitWarden"); + bootsSunlitWarden = (new LoEArmor(MATERIAL_SUNLIT_WARDEN, 3, LOTRMod.elfSteel)).setUnlocalizedName("lotr:bootsSunlitWarden").setTextureName("lotr:bootsSunlitWarden"); + greatswordLight = (new LoEGreatSword(MATERIAL_SUNLIT_WARDEN, (Item)LOTRMod.mithril)).addWeaponDamage(1.0f).setIsElvenBlade().setUnlocalizedName("lotr:greatswordLight").setTextureName("lotr:greatswordLight"); + effigyOfWrath = new LOTRItemEnchantment(LOTREnchantment.getEnchantmentByName("wrath")).setUnlocalizedName("lotr:effigy_of_wrath").setTextureName("lotr:effigy_of_wrath").setCreativeTab(LoECreativeTabs.tabMiscLoE);; + + ItemRegistration.register(helmetSunlitWarden, "helmetSunlitWarden", 7001); + ItemRegistration.register(bodySunlitWarden, "bodySunlitWarden", 7002); + ItemRegistration.register(legsSunlitWarden, "legsSunlitWarden", 7003); + ItemRegistration.register(bootsSunlitWarden, "bootsSunlitWarden", 7004); + ItemRegistration.register(greatswordLight, "greatswordLight", 7005); + ItemRegistration.register(effigyOfWrath,"effigyOfWrath",7006); + } else { + System.err.println("Failed to find SUNLIT_WARDEN material for armor initialization."); + } + linkLOTRWeapon(greatswordLight, "greatswordLight"); } public static ModContainer getModContainer() { diff --git a/src/main/java/com/zivilon/cinder_loe/Materials.java b/src/main/java/com/zivilon/cinder_loe/Materials.java index 9c0fcd6..315363a 100644 --- a/src/main/java/com/zivilon/cinder_loe/Materials.java +++ b/src/main/java/com/zivilon/cinder_loe/Materials.java @@ -29,6 +29,8 @@ public class Materials { modifyMaterial("JADE",1000, 5.0F, 0.8F, 0, 9.0F, 10, LOTRMod.emerald); modifyMaterial("GILDEDGALVORN",700, 3.0F, 0.6F, 2, 7.0F, 15, LOTRMod.galvorn); modifyMaterial("ARTIFACT",2000, 0.0F, 0.8F, 2, 7.0F, 15, LOTRMod.galvorn); + modifyMaterial("SUNLIT_WARDEN",1500, 5.0F, 0.7F, 2, 7.0F, 15, LOTRMod.mithril); + modifyMaterial("ORTHANC_GUARD",700, 2.0F, 0.7F, 2, 6.0F, 10, LOTRMod.urukSteel); } 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/client/model/ModelHelmetSunlitWarden.java b/src/main/java/com/zivilon/cinder_loe/client/model/ModelHelmetSunlitWarden.java new file mode 100644 index 0000000..61b1d48 --- /dev/null +++ b/src/main/java/com/zivilon/cinder_loe/client/model/ModelHelmetSunlitWarden.java @@ -0,0 +1,67 @@ +package com.zivilon.cinder_loe.client.model; + +import lotr.client.model.LOTRModelBiped; +import net.minecraft.client.model.ModelBox; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +// Made with Blockbench 4.12.5 +// Exported for Minecraft version 1.7 - 1.12 +// Paste this class into your mod and generate all required imports + +public class ModelHelmetSunlitWarden extends LOTRModelBiped { + public ModelRenderer bb_main; + public ModelRenderer Crest_r1; + public ModelRenderer PlumeHolder_r1; + public ModelRenderer PlumeTopper_r1; + + public ModelHelmetSunlitWarden(float f) { + super(f); + textureWidth = 64; + textureHeight = 64; + + bb_main = new ModelRenderer(this); + bb_main.setRotationPoint(0.0F, 24.0F, 0.0F); + bb_main.cubeList.add(new ModelBox(bb_main, 32, 15, -4.0F, -32.0F, -4.0F, 8, 8, 8, 1.0F)); + bb_main.cubeList.add(new ModelBox(bb_main, 18, 43, -6.0F, -30.3F, -6.0F, 12, 1, 4, 0.0F)); + bb_main.cubeList.add(new ModelBox(bb_main, 44, 0, -1.0F, -33.1F, -5.1F, 2, 4, 8, 0.0F)); + + Crest_r1 = new ModelRenderer(this); + Crest_r1.setRotationPoint(-1.0F, -30.0F, -7.0F); + bb_main.addChild(Crest_r1); + setRotationAngle(Crest_r1, -0.3491F, 0.0F, 0.0F); + Crest_r1.cubeList.add(new ModelBox(Crest_r1, 0, 24, 1.0F, -15.5F, -1.25F, 0, 16, 24, 0.0F)); + + PlumeHolder_r1 = new ModelRenderer(this); + PlumeHolder_r1.setRotationPoint(0.0F, -33.5F, 1.0F); + bb_main.addChild(PlumeHolder_r1); + setRotationAngle(PlumeHolder_r1, -0.2182F, 0.0F, 0.0F); + PlumeHolder_r1.cubeList.add(new ModelBox(PlumeHolder_r1, 0, 32, -1.0F, -1.0F, -1.0F, 2, 2, 4, 0.0F)); + + PlumeTopper_r1 = new ModelRenderer(this); + PlumeTopper_r1.setRotationPoint(-3.0F, -35.5F, -0.5F); + bb_main.addChild(PlumeTopper_r1); + setRotationAngle(PlumeTopper_r1, -0.3491F, 0.0F, 0.0F); + PlumeTopper_r1.cubeList.add(new ModelBox(PlumeTopper_r1, 40, 31, 1.5F, -1.0F, -1.5F, 3, 2, 9, 0.0F)); + + this.bipedHeadwear.cubeList.clear(); + this.bipedBody.cubeList.clear(); + this.bipedRightArm.cubeList.clear(); + this.bipedLeftArm.cubeList.clear(); + this.bipedRightLeg.cubeList.clear(); + this.bipedLeftLeg.cubeList.clear(); + + this.bipedHead.addChild(this.bb_main); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + bipedHead.render(f5); + } + + public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/com/zivilon/cinder_loe/client/model/OrthancGuardHelmet.java b/src/main/java/com/zivilon/cinder_loe/client/model/OrthancGuardHelmet.java new file mode 100644 index 0000000..3ee7f85 --- /dev/null +++ b/src/main/java/com/zivilon/cinder_loe/client/model/OrthancGuardHelmet.java @@ -0,0 +1,70 @@ +package com.zivilon.cinder_loe.client.model; + +import lotr.client.model.LOTRModelBiped; +import net.minecraft.client.model.ModelBox; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class OrthancGuardHelmet extends LOTRModelBiped { + private final ModelRenderer bb_main; + private final ModelRenderer Topper; + private final ModelRenderer Plume; + private final ModelRenderer HelmetAddons; + private final ModelRenderer RightGuard_r1; + + public OrthancGuardHelmet(float f) { + super (f); + textureWidth = 64; + textureHeight = 64; + + bb_main = new ModelRenderer(this); + bb_main.setRotationPoint(0.0F, 24.0F, 0.0F); + bb_main.cubeList.add(new ModelBox(bb_main, 0, 0, -4.0F, -32.0F, -4.0F, 8, 8, 8, 1.0F)); + + Topper = new ModelRenderer(this); + Topper.setRotationPoint(0.0F, 0.0F, 0.0F); + bb_main.addChild(Topper); + Topper.cubeList.add(new ModelBox(Topper, 0, 58, -1.5F, -36.25F, -1.5F, 3, 2, 3, 0.1F)); + Topper.cubeList.add(new ModelBox(Topper, 0, 48, -3.5F, -34.0F, -3.5F, 7, 2, 7, 0.5F)); + + Plume = new ModelRenderer(this); + Plume.setRotationPoint(0.0F, 0.0F, 0.0F); + bb_main.addChild(Plume); + Plume.cubeList.add(new ModelBox(Plume, 31, 33, -8.0F, -40.9F, 0.25F, 16, 9, 0, 0.25F)); + Plume.cubeList.add(new ModelBox(Plume, 31, 52, -8.0F, -40.9F, -0.5F, 16, 9, 0, 0.25F)); + + HelmetAddons = new ModelRenderer(this); + HelmetAddons.setRotationPoint(0.0F, 0.0F, 0.0F); + bb_main.addChild(HelmetAddons); + HelmetAddons.cubeList.add(new ModelBox(HelmetAddons, -7, 32, -6.5F, -25.5F, 1.0F, 13, 0, 8, 0.0F)); + HelmetAddons.cubeList.add(new ModelBox(HelmetAddons, 36, 26, -5.0F, -28.8F, 4.3F, 10, 3, 1, 0.4F)); + HelmetAddons.cubeList.add(new ModelBox(HelmetAddons, 7, 17, 4.0F, -31.0F, -4.7F, 1, 5, 10, 0.4F)); + + RightGuard_r1 = new ModelRenderer(this); + RightGuard_r1.setRotationPoint(-4.0F, -28.46F, 0.8F); + HelmetAddons.addChild(RightGuard_r1); + setRotationAngle(RightGuard_r1, 0.0F, 1.5708F, 0.0F); + RightGuard_r1.cubeList.add(new ModelBox(RightGuard_r1, 42, 9, -4.5F, -2.5F, -0.99F, 10, 5, 1, 0.4F)); + this.bipedHead.addChild(bb_main); + + this.bipedHead.cubeList.clear(); + this.bipedHeadwear.cubeList.clear(); + this.bipedBody.cubeList.clear(); + this.bipedRightArm.cubeList.clear(); + this.bipedLeftArm.cubeList.clear(); + this.bipedRightLeg.cubeList.clear(); + this.bipedLeftLeg.cubeList.clear(); + + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + this.bipedHead.render(f5); + } + + public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRMaterialTransformer.java b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRMaterialTransformer.java index 3075901..af66ca1 100644 --- a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRMaterialTransformer.java +++ b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRMaterialTransformer.java @@ -72,7 +72,8 @@ public class LOTRMaterialTransformer implements IClassTransformer { addMaterial("JADE",classNode); addMaterial("GILDEDGALVORN",classNode); addMaterial("ARTIFACT",classNode); - + addMaterial("SUNLIT_WARDEN",classNode); + addMaterial("ORTHANC_GUARD",classNode); // Protection Conversion 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 2a20799..fa83a2c 100644 --- a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java +++ b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java @@ -26,7 +26,8 @@ public class LOTRWeaponLinker implements IClassTransformer { "swordBree", "greatswordAngmar", "greatswordLindon", "greatswordDale", "greatswordNumenor", "maceArnor", "daggerAsh","bowAsh","hammerAsh","pikeAsh","battleaxeAsh","swordAsh","spearAsh", "staffAsh", "cleaver", - "bowLurtz"); + "bowLurtz", + "greatswordLight"); } return basicClass; } diff --git a/src/main/java/com/zivilon/cinder_loe/items/LoEGreatSword.java b/src/main/java/com/zivilon/cinder_loe/items/LoEGreatSword.java index b534944..6f22b18 100644 --- a/src/main/java/com/zivilon/cinder_loe/items/LoEGreatSword.java +++ b/src/main/java/com/zivilon/cinder_loe/items/LoEGreatSword.java @@ -8,6 +8,7 @@ import lotr.common.item.LOTRWeaponStats; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.item.EnumAction; public class LoEGreatSword extends LOTRItemSword { public Item repair_item; @@ -31,11 +32,16 @@ public class LoEGreatSword extends LOTRItemSword { @Override public boolean getIsRepairable(ItemStack item, ItemStack repair_material) { - if (repair_material.getItem() == repair_item) + if (repair_material.getItem() == repair_item) { return true; + } return false; } + public EnumAction getItemUseAction(ItemStack itemstack) { + return EnumAction.none; + } + static { LOTRWeaponStats.registerMeleeSpeed(LoEGreatSword.class, 0.83f); LOTRWeaponStats.registerMeleeReach(LoEGreatSword.class, 1.15f); diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRArmorModels.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRArmorModels.java index cfc8411..c0a182b 100644 --- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRArmorModels.java +++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRArmorModels.java @@ -110,6 +110,8 @@ public class MixinLOTRArmorModels { map.put(LOTRMod.ceramicPlate, new LOTRModelHeadPlate()); map.put(CinderLoE.helmetDorwinionElite, new ModelDorwinionHelmet(1.0f)); map.put(CinderLoE.bodyDorwinionElite, new ModelBodyDorwinionElite(1.0f)); + map.put(CinderLoE.helmetSunlitWarden, new ModelHelmetSunlitWarden(1.0f)); + map.put(CinderLoE.helmetOrthancGuard, new OrthancGuardHelmet(1.0f)); for (ModelBiped armorModel : map.values()) copyModelRotations(armorModel, key); this.specialArmorModels.put(key, map); 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 74d75a4..7a862dc 100644 --- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java +++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTRContainerAnvil.java @@ -130,6 +130,8 @@ public abstract class MixinLOTRContainerAnvil { return (materialItem.getItem() == LOTRMod.bronze); if (material == CinderLoE.MATERIAL_ESGAROTH.toToolMaterial()) return (materialItem.getItem() == Items.iron_ingot); + if (material == CinderLoE.MATERIAL_SUNLIT_WARDEN.toToolMaterial()) + return (materialItem.getItem() == LOTRMod.mithril); if (item instanceof ItemArmor armor) { ItemArmor.ArmorMaterial armorMaterial = armor.getArmorMaterial(); if (armorMaterial == LOTRMaterial.BONE.toArmorMaterial()) @@ -158,7 +160,10 @@ public abstract class MixinLOTRContainerAnvil { return (materialItem.getItem() == LOTRMod.galvorn); if (armorMaterial == CinderLoE.MATERIAL_ESGAROTH.toArmorMaterial()) return (materialItem.getItem() == Items.iron_ingot); - + if (armorMaterial == CinderLoE.MATERIAL_SUNLIT_WARDEN.toArmorMaterial()) + return (materialItem.getItem() == LOTRMod.elfSteel); + if (armorMaterial == CinderLoE.MATERIAL_DORWINIONELITE.toArmorMaterial()) + return (materialItem.getItem() == LOTRMod.elfSteel); } return false; diff --git a/src/main/resources/assets/cinder_loe/lang/en_US.lang b/src/main/resources/assets/cinder_loe/lang/en_US.lang index aea82c4..2d593df 100644 --- a/src/main/resources/assets/cinder_loe/lang/en_US.lang +++ b/src/main/resources/assets/cinder_loe/lang/en_US.lang @@ -58,7 +58,6 @@ item.cinder_fur_item_3.name=Obsidian Warg Fur item.cinder_fur_item_4.name=Black Bear Fur item.cinder_fur_item_5.name=Brown Bear Fur item.cinder_fur_item_6.name=Lioness Fur -item.lotr:effigy_of_wrath.name=Effigy of Wrath item.lotr:helmetJade.name=Jade Helmet item.lotr:bodyJade.name=Jade Chestplate @@ -182,6 +181,18 @@ item.lotr:bodyDorwinionElite.name=Bladorthin Champion Chestplate item.lotr:legsDorwinionElite.name=Bladorthin Champion Leggings item.lotr:bootsDorwinionElite.name=Bladorthin Champion Boots +item.lotr:helmetOrthancGuard.name=Orthanc Guard Helmet +item.lotr:bodyOrthancGuard.name=Orthanc Guard Chestplate +item.lotr:legsOrthancGuard.name=Orthanc Guard Leggings +item.lotr:bootsOrthancGuard.name=Orthanc Guard Boots + +item.lotr:helmetSunlitWarden.name=Sunlit Warden Helmet +item.lotr:bodySunlitWarden.name=Sunlit Warden Chestplate +item.lotr:legsSunlitWarden.name=Sunlit Warden Leggings +item.lotr:bootsSunlitWarden.name=Sunlit Warden Boots +item.lotr:greatswordLight.name=Greatsword of Light +item.lotr:effigy_of_wrath.name=Effigy of Wrath + item.lotr:ingotAsh.name=Ashen Ingot item.lotr:swordAsh.name=Ash-Forged Sword item.lotr:staffAsh.name=Ash-Forged Bardiche @@ -460,7 +471,6 @@ item.curing_salts.name=Curing Salts item.underroot.name=Underroot item.miners_lichen.name=Miner’s Lichen - potion.overdose=Overdose #Achievements @@ -480,7 +490,14 @@ lotr.achievement.spiceDwarfBrew.desc=Drink a brew infused with Stonegrit. lotr.achievement.Overdose.title=I don't feel so good... lotr.achievement.Overdose.desc=Overdose on concentrated brews. - +#Creative tabs +cinder_loe.creativetab.tabCombatLoE=LoE Combat +cinder_loe.creativetab.tabMiscLoE=LoE Miscellaneous +cinder_loe.creativetab.tabBlockLoE=LoE Blocks +cinder_loe.creativetab.tabSpawnLoE=LoE Spawning +cinder_loe.creativetab.tabFoodLoE=LoE Food +cinder_loe.creativetab.tabDecoLoE=LoE Decoration +cinder_loe.creativetab.tabCharacterLoE=LoE Character #Biomes lotr.biome.mistyForest.name=Misty Forest diff --git a/src/main/resources/assets/lotr/armor/orthanc_guard_1.png b/src/main/resources/assets/lotr/armor/orthanc_guard_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ec5dfd87e42e7289ede2942c4a19dd4221ce99fb GIT binary patch literal 987 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

GDME66tLEs|C9v~xfsRF2mvC^ zk(>J|zrIzKJ#GX%tRdSe2*B!MW#x)k++R3&B9oa z`0tps7b6)|YEeXB?&iO^efNGq1rkdD4lP2AR`M)yXM_4qd+L)3gakY%3q0mx3jkDM zLG-{P0Ht_If)ax(n#5~sgZw$-Bv)p6rg|O(^hVb3!3IrlWkCXBlCkoF>ks-3NRbQ-01jnXNoGw=04e|g00;m8000000Mb*F00000NkvXXu0mjf3!CCI literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/armor/sunlit_warden_2.png b/src/main/resources/assets/lotr/armor/sunlit_warden_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7105e4b8047a295231d33722d36596ee33068f69 GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQjEnx?oJHr&dIz4vaLN`978f# z-%fS(Vs;d8EtZ_fa!I%+FrLw6dUv;D$44IB{0ELV1(YN=Y3yQh z_5Hg}@pJt3FFImhwV7NOaELT21+a8E2x`DNZR#IB{J1hNep{~(54+1_Ckdg3XYF$v z7BcL~H^01l-OKH}Z@0PiEj$)-qkGyv(St2*Cs?Ew-rUz$RmE_B_iuYQ!}i3Ig9W{6 zGF2R3zA)5%TR(YXhE(#4cUx>{Z4lX%-(kwszhVL`)n(W^FSA9aM)7^bv81%x!-~LLwt2gbm=J&6PAdzQM2}+Mr0_tn( ze5EYoiVNhp)X$Wv=f3+q_ivrNNg7{R&+5Y7YqQ@R3}jY#m2PhEo!`&a=7075JI}4l t{_DRIEOB}FTz(}mO!-nHJkxxA8MJ_G4j=}BOTm*tl&7no%Q~loCIJ7-sDS_g literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/armor/sunlit_warden_helmet.png b/src/main/resources/assets/lotr/armor/sunlit_warden_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..f5bf5aff3fa1938917551434b4b8a3ff7e023e7b GIT binary patch literal 1288 zcmV+j1^4=iP)Px(s7XXYRCt{2nQv$tWgN#p9dlqRdTEnk(_qqJRxm|}g@GMKWupbVg7~6Unc@p6 z4D_W;7=0y!`C4Cvy^w88A}B&vrNv=k+JVp_awn9^nvC>Xnzp%(Ho|;yzF3~)@~=sA zN$=9!=S`F6p8Wd!zR&N^b9dn4;&PbKcCz|PO4X~Kf26U?aXzj9b}ztgTmkG}fZepb z07va!K)p#N?xQG*-OF%sadD{+vMlS`PFB};vbrqGdORM_`)<{~iKQ)NgA0QY$K}OTq)wao`RU-f01zfq1$IU?G1@PBUnX8G^Gh-g1?PkIZV--mZ#98cuQ z@3VmC+$F=d5KR=&(`N<^JHsQR_D6uWlhsp+`!Ii%OyomjrvWmWMrv6GU^Bf*Rt24g*gFGar_O5Hr(L43CU5Gd*R$0A-J}^H&MJ9|J&o#?vO| zDvHAR_;?#R@c>e{CJcuKnY0Rkx{=}ZnL#50L>h=9YI_Q_OC9WL+eNKzHMvHxU~VR@ z5;*QHvay<6qkEvZUHs`?2^?9v zl{a_r&7r)AHDCXAZobF{Pj_+So0|ZffBU=<1%NSbdkXBu%;mHCYwx_rv;7~JT<4>O zYx=z(zGe8zor-?M<8d8R=$plIJaX(pQJp9?RtwFe!XA`+7uXXFRP?XtBp8p!brCMD zfbB)F9+->UercL}fkx5t0v@3EuND1Ci>jw_tvL|BM8LGHy-@qhu-!-iJE zal2UyD=Ag?N)j1OgIrO}Xj*M;u+?yU8x)6}Qmszxc&Tx(Bo)<$Qu7@zz^=BP_t%V~ zD0vS!1b_T~w7c%^3v+=m>sX?C@cPVwR0WK`t0O^KZmfb2$phoGqJ+V<+BGWf@J{~ zV`DWf*wY!xv#}T((_iR+!|HPO&4Hc-ONk}Mj&TftS6&}rG1RHQI`N&6)9bU7`tw6y zG$h9ltZ+P9xTgQJFl#s}c3X`3!aaC8Lu9v-sEH*20^wc&)Wi~ILF&nY)qn>JbB6Q2 za1Yt7Bmn8;mN7?+1;V|&*gu4)Gt^M$DNKPzgxdP-q;Af4;iQ^ag4|9&=CN^IO)TX^ znFpxqrH2*rj4#HL$RifU;J^%m!4rN$LW=%~1DgXcg2mk;800000(o>TF0000NS%G}@0G|+7D>E}yX-O?r)vCH;Gj$aS35m4yXdiEKFEzq5&DWPf3&`dGVi33#JQ+yld%8G=XavXhadWXK z@;F~Ue{9|Bzvp+aJftAJYD&6K_tzk1i3gK@vN0&x2elP6GYA@%tju)KXK}Zz&1tvJ zTGHuZePzF+pON1RKUsI%2X75d$FDl0mr%x->sY(XNqu=*vR%UdpHCgiS6{b!a4D+3 WL7QDva$a3F$OWFRelF{r5}E+oE^)R1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/bodySunlitWarden.png b/src/main/resources/assets/lotr/textures/items/bodySunlitWarden.png new file mode 100644 index 0000000000000000000000000000000000000000..dbb583f170eecc24271c29674b2942a40ca64522 GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|etNn%hFAzL zowSknkb!`!F_%-$AtoLN$CFGU8bZYz9Nii$?_5@J@oda!o;Nl9rs0GpkL8=+|EsrC z&zyB}b2k6q6;rmYKKm_u{Xq|#dFy9P&W=b}=DyBBO8}%6iuFdm^&;;z&-_wpn3(?AmFEnLTGKt12h$w_On=$8n!9g*U!?G0 k{cd0&@TEq0ruq6ZXaU(AKnwzxf+vG0Pgg&ebxsLQ0DrE3xBvhE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/bootsOrthancGuard.png b/src/main/resources/assets/lotr/textures/items/bootsOrthancGuard.png new file mode 100644 index 0000000000000000000000000000000000000000..f2fd0c4bf4a12d3c7106c66803e69588c59f0cf9 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}@0G|+7D>E}KRn@Ax;;1N}wDf2nZzl&k3sq@JGj$bzJ8MTnJ#j&hsdqiv zBY_leNswRgeKW=8CT$Jk0jl9kjqptK^<~fkvN?bl1TF)khNHX zg4Xc|s(qI1Oa{xE5>^=$n>VjwHMoFDzLG7tVSglypacx|@Bevo~hu6{1-oD!M< D-ZX6E literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/bootsSunlitWarden.png b/src/main/resources/assets/lotr/textures/items/bootsSunlitWarden.png new file mode 100644 index 0000000000000000000000000000000000000000..ff8fead7bf5a4c7f56528380bcec15c02b9aaa83 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|W_Y?dhFAzD zCrGef;cvWjtL?u+Po9xpp-8EI+0}pdBj55IJJHr~!{DR#<|G52cIi*w{(Smx;JiVS z;Sx^}^Yw;v44Mo#zdSs>{eSqnm_}`ujgCnQmUHwNZt@f}dIUN+vE5;qknNCkA}c`0 zeOkj#rke}`(rMP4qIM`6NKY_bEZva9v5Q;MfvrL0fWe&<6E+_?x5b|Pp?VB%X1hHv me&f;yx{)t6!ZXd+mq822<^W<4xD-4YM0vXUxvXeK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?e4!_8+soO5NY-QCH!hh$NmEcUA<&v?#Rem&E&~D$f0;_W%rKVJ47Dx=C9ye zs8AxP#N~EGb#-f6MefN50wtd8;twsBE)e^CV&?nua}VRzHO?yf+i>)`xKydbb^eMs zvRA!BFLPckak~AH!(qSU%vtq&uKVwk2AyG z7aA`YZWH*oz42|uoxI!!swX#W-PyMLcJ-Iv*SnvGrhGJySusIHb4kkXz2{H4t~`;n z&`C@yMaPHF-7-1x)j?TfNTyR27yb#lR=cHtDnm{r-UW|CEvbH literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/helmetOrthancGuard.png b/src/main/resources/assets/lotr/textures/items/helmetOrthancGuard.png new file mode 100644 index 0000000000000000000000000000000000000000..5a14e047287adbcad6dc27cbdd9f5dbeb3b77d3b GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}50G|+70U;478M&<+mmfK_D=j^GYG0j?x098bSyf%Jma1x0lu!SpE(r+< zpz?d=!tFqcuO!GX_&+jWa6NG61W<;vz$3C4sNgUNGak=hkpdKyC~=J_3C>R|DNig) zWe7;j%q!9Ja}7~2)icyHOxha612Qr-!ZXd+mq822<^W<4xD-4YNH%%8IEH8hoAz4S;;@cQ z3&;Crmzl<@F$<#X74$anD1}cB00k?P1uBG zN#*@{e=T@#Y^ap3o8G{~aFb`VthDrc?N_s{{xyGiqPclP(hQqj+aK1<;8syp{hxeT zLHuDUV<-z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;ywrNC01}t%i#L000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2k8a~5-T+S4MS%D00IF?L_t(&-tCw_NLxW1$GBcMP!LiG)(*v`)xkKZNePPZhAT(~YYAKjNyHTEl7>f!NYW<5Q+eYXIwX|Z zR{V9!)IURCE_ny{8IK3|x!?W1ciaOM3WcJPXl|AZPE8X4l)s%}eeLBRT|I7>e-e89 z&+nSuDqj_Uu@IH3r-M_|WS$&TI%|-5a!i5A5J@K==Ui_2bk>klUS~{h`8em~_m9aV zAD9eLI%~)+ACANv$!m?0AHC;8>BvI+rB>{0?_z7~wI;;^YAFu@P4$%b`^U&PR2B2me(00A|jnJxdL02FBEMGM`AQQeBYh&W^(*Dv9h^IWph)Qe9imMHfE@$ z?G^wa_dbgDL5|GF&$#;Y8Rp-1AensU{+|D!-yr}f6m23RDim$1j!E+(s|vr$jo@K_ z0(T#!h0G=7MHY_4=-TZeSfvWs>T}I1RfO%fM??ntdb=^Z@g0H1yte-IhR_qoQ|roC zzF0`@?W0G_dH^7>n3vi|@-{Sk|NUd@;4qJaL)5+J z6$*typ-?Ck3it2}MEfkiY?1s60000EWmrjOO-%qQ00008000000002eQNS%G|oWRD45dI*UL`OvSj}Ky5HFasE6@fg!ItFh z?!w^4;K2~TdTm=bP=vFTVi|kp4AoCR*qdK$~xH&d0$y* z{~#@)@@BK+)`TVlg-rJ3>)xGPx_XzgyFRmMXJS=ss*`o%^5TCbegDAwVktTPd+BxW zzqd;^Bub>s(=a;CD$K?^KmP8Azt=;j#@>@I=)YU;5cc!Jv;2?K{jHO~uiA7f-2QK* z^i;bbH#>jkOGUA#E;syJ$LN0Y{`$=}r#J7pGTCB=!3pVt$FnmNFK%r)7MK1gY^6oy zy>E`&1W#W0bc(6(eR!G@|L&(-W2Sd>Y>BxZ$!a|%-$WN^(yfk^CsXqG^Zr%7mc4xC zbwBRO^DF;FPSudLs*z#{sQu33e*U#a{f{PL`@F}2U)AoZ=%1edx%&2V4hAXT?v4&1 z(U#r!Q%Rc3etq1LtD9L_*6kNBnl{1gm%_XSlhgGMFnou*4PS+f4~6@vd$@?2>_3)8}k4F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png b/src/main/resources/assets/lotr/textures/items/large2/spearUnnamed.png similarity index 100% rename from src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png rename to src/main/resources/assets/lotr/textures/items/large2/spearUnnamed.png diff --git a/src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png.mcmeta b/src/main/resources/assets/lotr/textures/items/large2/spearUnnamed.png.mcmeta similarity index 100% rename from src/main/resources/assets/lotr/textures/items/large/spearUnnamed.png.mcmeta rename to src/main/resources/assets/lotr/textures/items/large2/spearUnnamed.png.mcmeta diff --git a/src/main/resources/assets/lotr/textures/items/legsOrthancGuard.png b/src/main/resources/assets/lotr/textures/items/legsOrthancGuard.png new file mode 100644 index 0000000000000000000000000000000000000000..43dc6bde0d13abbc45105d112542dd8970df4e01 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}%0G|+7At50N2?<#_IVBYpRcT2xb(N~R;{HipK>5#1ipzl%XGxG>@P8;^ z2==cK0tps)L>4nJ@ErzW#^d=bQhfNJflI-Yfn=n@2FsXBX4D|tHRp!ER8jn_NrR!QV;l|!xZi+FWIE78w@slP-$5B r;A1tb%M;VP&dEQRe(Juv8NQ=FPMl?S>589fAp1OB{an^LB{Ts5Ofh1= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/legsSunlitWarden.png b/src/main/resources/assets/lotr/textures/items/legsSunlitWarden.png new file mode 100644 index 0000000000000000000000000000000000000000..238c8ae609caf8cadd8428107a6dbeceeb9e9879 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|)_S@)hFAzD zCoEvqSeyHU|B!y!)uuuRr(^X3Y8m1_kK6U{|BIg~`dQvZc{8UJ%VmZ|@9ituw#lXl zboA=9UshERUlX%aXq{x5zzKl~795Yia-Cq9kgL$D@c(d*TN$e(bHcVJo`#Ky4;hUn zEMPQ&u`8WOD#92wV!D45B<;{an^L HB{Ts5>bzJj literal 0 HcmV?d00001