From ac380a5a0b948c022101579cfeee86207cb261d1 Mon Sep 17 00:00:00 2001 From: KeyLime17 Date: Tue, 17 Jun 2025 17:58:49 -0400 Subject: [PATCH] Greatswords finalized, recipes added --- .../com/zivilon/cinder_loe/CinderLoE.java | 20 ++-- .../cinder_loe/coremod/LOTRWeaponLinker.java | 2 +- .../cinder_loe/items/LoEGreatSword.java | 5 +- .../mixins/MixinLOTREnchantment.java | 4 + .../overrides/MixinLOTRChestContents.java | 90 ++++++++++++++++++ .../java/com/zivilon/cinder_loe/recipes.java | 14 +++ .../assets/cinder_loe/lang/en_US.lang | 1 + .../lotr/textures/items/greatswordAngmar.png | Bin 0 -> 514 bytes .../items/large2/greatswordAngmar.png | Bin 0 -> 642 bytes 9 files changed, 123 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRChestContents.java create mode 100644 src/main/resources/assets/lotr/textures/items/greatswordAngmar.png create mode 100644 src/main/resources/assets/lotr/textures/items/large2/greatswordAngmar.png diff --git a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java index f1f0d35..5e14d89 100644 --- a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java +++ b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java @@ -686,6 +686,7 @@ public class CinderLoE { **/ // ==Admin Tools== + unitLevelTool = (new unitLevelTool()).setUnlocalizedName("lotr:unitLevelTool").setTextureName("stick"); ItemRegistration.register(unitLevelTool, "unitLevelTool", 7000); @@ -719,6 +720,12 @@ public class CinderLoE { ItemRegistration.register(spawnEgg, "spawnEgg", 6003); // Wizard Staves + radagastStaff = (new RadagastStaff()).setUnlocalizedName("lotr:radagastStaff").setTextureName("lotr:radagastStaff"); + pallandoStaff = (new PallandoStaff()).setUnlocalizedName("lotr:pallandoStaff").setTextureName("lotr:pallandoStaff"); + alatarStaff = (new AlatarStaff()).setUnlocalizedName("lotr:alatarStaff").setTextureName("lotr:alatarStaff"); + sarumanStaff = (new SarumanStaff()).setUnlocalizedName("lotr:sarumanStaff").setTextureName("lotr:sarumanStaff"); + sarumanWhiteStaff = (new SarumanWhiteStaff()).setUnlocalizedName("lotr:sarumanWhiteStaff").setTextureName("lotr:sarumanStaff"); + ItemRegistration.register(radagastStaff, "radagastStaff", 6700); ItemRegistration.register(pallandoStaff, "pallandoStaff", 6701); ItemRegistration.register(alatarStaff, "alatarStaff", 6702); @@ -731,24 +738,18 @@ public class CinderLoE { linkLOTRWeapon(sarumanStaff, "sarumanStaff"); linkLOTRWeapon(sarumanWhiteStaff, "sarumanWhiteStaff"); - // Wizard Staves - radagastStaff = (new RadagastStaff()).setUnlocalizedName("lotr:radagastStaff").setTextureName("lotr:radagastStaff"); - pallandoStaff = (new PallandoStaff()).setUnlocalizedName("lotr:pallandoStaff").setTextureName("lotr:pallandoStaff"); - alatarStaff = (new AlatarStaff()).setUnlocalizedName("lotr:alatarStaff").setTextureName("lotr:alatarStaff"); - sarumanStaff = (new SarumanStaff()).setUnlocalizedName("lotr:sarumanStaff").setTextureName("lotr:sarumanStaff"); - sarumanWhiteStaff = (new SarumanWhiteStaff()).setUnlocalizedName("lotr:sarumanWhiteStaff").setTextureName("lotr:sarumanStaff"); // Relics welfRelic = (new WoodElfRelic()).setUnlocalizedName("lotr:welfRelic").setTextureName("lotr:welfRelic"); ulukai = (new Ulukai()).setUnlocalizedName("lotr:ulukai").setTextureName("lotr:ulukai"); + ItemRegistration.register(welfRelic, "welfRelic", 6704); ItemRegistration.register(ulukai, "ulukai", 6706); linkLOTRWeapon(welfRelic, "welfRelic"); - unitLevelTool = (new unitLevelTool()).setUnlocalizedName("lotr:unitLevelTool").setTextureName("stick"); - // Great Swords + //Great swords idk where to put them greatswordAngmar = (new LoEGreatSword(LOTRMaterial.ANGMAR)).setUnlocalizedName("lotr:greatswordAngmar").setTextureName("lotr:greatswordAngmar"); - greatswordLindon = (new LoEGreatSword(LOTRMaterial.HIGH_ELVEN).setIsElvenBlade()).setUnlocalizedName("lotr:greatswordLindon").setTextureName("lotr:greatswordLindon"); + greatswordLindon = new LoEGreatSword(LOTRMaterial.HIGH_ELVEN).setIsElvenBlade().setUnlocalizedName("lotr:greatswordLindon").setTextureName("lotr:greatswordLindon"); greatswordDale = (new LoEGreatSword(LOTRMaterial.DALE)).setUnlocalizedName("lotr:greatswordDale").setTextureName("lotr:greatswordDale"); greatswordNumenor = (new LoEGreatSword(LOTRMaterial.BLACK_NUMENOREAN)).setUnlocalizedName("lotr:greatswordNumenor").setTextureName("lotr:greatswordNumenor"); @@ -763,7 +764,6 @@ public class CinderLoE { linkLOTRWeapon(greatswordNumenor, "greatswordNumenor"); // Misc - MATERIAL_JADE = getLOTRMaterialByName("JADE"); cinderFurItem = (new CinderFurItem()).setUnlocalizedName("cinder_fur_item").setTextureName("lotr:cinder_fur_item_0"); ItemRegistration.register(cinderFurItem,"cinderFurItem",6004); 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 4264aa0..343e52f 100644 --- a/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java +++ b/src/main/java/com/zivilon/cinder_loe/coremod/LOTRWeaponLinker.java @@ -23,7 +23,7 @@ public class LOTRWeaponLinker implements IClassTransformer { "radagastStaff", "alatarStaff", "pallandoStaff", "sarumanStaff", "maceWarlord", "sarumanWhiteStaff", "spearLimwaith", "tridentLimwaith", "daggerLimwaith", "daggerLimwaithPoisoned", "truncheonLimwaith", "battleaxeLimwaith", "blowgunLimwaith", "frostblade", "spearsolidgold", "whip", "spearUnnamed", "welfRelic", "daggerVoid", - "swordBree", + "swordBree", "greatswordAngmar", "greatswordLindon", "greatswordDale", "greatswordNumenor", "maceArnor", "daggerAsh","bowAsh","hammerAsh","pikeAsh","battleaxeAsh","swordAsh","spearAsh", "staffAsh", "cleaver", "bowLurtz"); 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 5ffa369..2bfd31a 100644 --- a/src/main/java/com/zivilon/cinder_loe/items/LoEGreatSword.java +++ b/src/main/java/com/zivilon/cinder_loe/items/LoEGreatSword.java @@ -1,6 +1,7 @@ package com.zivilon.cinder_loe.items; import com.zivilon.cinder_loe.LoECreativeTabs; +import lotr.common.item.LOTRItemPolearmLong; import lotr.common.item.LOTRItemSword; import lotr.common.item.LOTRMaterial; import lotr.common.item.LOTRWeaponStats; @@ -36,7 +37,7 @@ public class LoEGreatSword extends LOTRItemSword { } static { - LOTRWeaponStats.registerMeleeSpeed(LoEGreatSword.class, 0.833f); - LOTRWeaponStats.registerMeleeReach(LoEGreatSword.class, 1.25f); + LOTRWeaponStats.registerMeleeSpeed(LoEGreatSword.class, 0.9f); + LOTRWeaponStats.registerMeleeReach(LoEGreatSword.class, 1.1f); } } diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREnchantment.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREnchantment.java index 2aa4add..2816d0e 100644 --- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREnchantment.java +++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREnchantment.java @@ -5,6 +5,7 @@ import com.zivilon.cinder_loe.enchants.LOTREnchantmentWeakProtectionRanged; import com.zivilon.cinder_loe.enchants.LOTREnchantmentArmorSpecial; import com.zivilon.cinder_loe.util.Utilities; import lotr.common.enchant.*; +import lotr.common.entity.npc.LOTREntityNPC; import net.minecraft.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; @@ -39,8 +40,10 @@ public class MixinLOTREnchantment { LOTREnchantment stealth = new LOTREnchantmentArmorSpecial("stealth").setEnchantWeight(0).setSkilful(); LOTREnchantment meleeSturdy = new LOTREnchantmentWeaponSpecial("meleeSturdy").setEnchantWeight(0).setValueModifier(1); LOTREnchantment armorSturdy = new LOTREnchantmentArmorSpecial("armorSturdy").setEnchantWeight(0).setValueModifier(1); + LOTREnchantment baneNPC = new LOTREnchantmentBane("baneNPC", 4.0f, LOTREntityNPC.class).setEnchantWeight(0); + LOTREnchantment.allEnchantments.add(baneNPC); LOTREnchantment.allEnchantments.add(protectRangedWeak1); LOTREnchantment.allEnchantments.add(protectRangedWeak2); rangedWeak3.allEnchantments.add(rangedWeak3); @@ -61,6 +64,7 @@ public class MixinLOTREnchantment { @SuppressWarnings("unchecked") Map enchantsByName = (Map) enchantsByNameField.get(null); + enchantsByName.put(baneNPC.enchantName, baneNPC); enchantsByName.put(protectRangedWeak1.enchantName, protectRangedWeak1); enchantsByName.put(protectRangedWeak2.enchantName, protectRangedWeak2); enchantsByName.put(rangedWeak3.enchantName, rangedWeak3); diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRChestContents.java b/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRChestContents.java new file mode 100644 index 0000000..a71af9c --- /dev/null +++ b/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRChestContents.java @@ -0,0 +1,90 @@ +package com.zivilon.cinder_loe.mixins.overrides; + +import com.zivilon.cinder_loe.CinderLoE; +import lotr.common.LOTRFoods; +import lotr.common.LOTRMod; +import lotr.common.item.LOTRItemConquestHorn; +import lotr.common.item.LOTRItemMug; +import lotr.common.world.spawning.LOTRInvasions; +import lotr.common.world.structure.LOTRChestContents; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandomChestContent; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(LOTRChestContents.class) +public class MixinLOTRChestContents { + + @Shadow + public WeightedRandomChestContent[] items; + + @Shadow private LOTRItemMug.Vessel[] vesselTypes; + + @Shadow + public static LOTRChestContents NEAR_HARAD_PYRAMID = + new LOTRChestContents(8, 10, + new WeightedRandomChestContent[]{new WeightedRandomChestContent(new ItemStack(LOTRMod.helmetNearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.bodyNearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.legsNearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.bootsNearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.scimitarNearHarad), 1, 1, 25), + new WeightedRandomChestContent(new ItemStack(LOTRMod.daggerNearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.spearNearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.poleaxeNearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.maceNearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.pikeNearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.helmetGulfHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.bodyGulfHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.legsGulfHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.bootsGulfHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.swordGulfHarad), 1, 1, 25), + new WeightedRandomChestContent(new ItemStack(LOTRMod.daggerHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.swordHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.spearHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.pikeHarad), 1, 1, 5), + new WeightedRandomChestContent(new ItemStack(LOTRMod.nearHaradBow), 1, 1, 25), + new WeightedRandomChestContent(new ItemStack(LOTRMod.silverCoin, 1, 0), 1, 40, 100), + new WeightedRandomChestContent(new ItemStack(LOTRMod.silverCoin, 1, 1), 1, 15, 25), + new WeightedRandomChestContent(new ItemStack(LOTRMod.silverCoin, 1, 2), 1, 2, 10), + new WeightedRandomChestContent(new ItemStack(Items.gold_ingot), 1, 8, 100), + new WeightedRandomChestContent(new ItemStack(LOTRMod.silver), 1, 8, 100), + new WeightedRandomChestContent(new ItemStack(LOTRMod.bronze), 1, 8, 100), + new WeightedRandomChestContent(new ItemStack(Items.iron_ingot), 1, 8, 100), + new WeightedRandomChestContent(new ItemStack(Items.dye, 1, 4), 1, 8, 50), + new WeightedRandomChestContent(new ItemStack(LOTRMod.mithrilNugget), 1, 3, 10), + new WeightedRandomChestContent(new ItemStack(LOTRMod.diamond), 1, 2, 10), + new WeightedRandomChestContent(new ItemStack(LOTRMod.emerald), 1, 3, 15), + new WeightedRandomChestContent(new ItemStack(LOTRMod.ruby), 1, 3, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.sapphire), 1, 3, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.topaz), 1, 4, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.amber), 1, 4, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.goldRing), 1, 2, 25), + new WeightedRandomChestContent(new ItemStack(LOTRMod.silverRing), 1, 2, 25), + new WeightedRandomChestContent(new ItemStack(Items.skull), 1, 1, 50), + new WeightedRandomChestContent(new ItemStack(Items.bone), 1, 3, 100), + new WeightedRandomChestContent(new ItemStack(Items.rotten_flesh), 1, 3, 100), + new WeightedRandomChestContent(LOTRItemConquestHorn.createHorn(LOTRInvasions.NEAR_HARAD_COAST), 1, 1, 1), + new WeightedRandomChestContent(LOTRItemConquestHorn.createHorn(LOTRInvasions.NEAR_HARAD_UMBAR), 1, 1, 1), + new WeightedRandomChestContent(LOTRItemConquestHorn.createHorn(LOTRInvasions.NEAR_HARAD_HARNEDOR), 1, 1, 1), + new WeightedRandomChestContent(LOTRItemConquestHorn.createHorn(LOTRInvasions.NEAR_HARAD_GULF), 1, 1, 1), + new WeightedRandomChestContent(LOTRItemConquestHorn.createHorn(LOTRInvasions.NEAR_HARAD_NOMAD), 1, 1, 1), + new WeightedRandomChestContent(new ItemStack(LOTRMod.daggerAncientHarad), 1, 1, 50), + new WeightedRandomChestContent(new ItemStack(LOTRMod.helmetBlackNumenorean), 1, 1, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.bodyBlackNumenorean), 1, 1, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.legsBlackNumenorean), 1, 1, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.bootsBlackNumenorean), 1, 1, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.swordBlackNumenorean), 1, 1, 20), + new WeightedRandomChestContent(new ItemStack(CinderLoE.greatswordNumenor), 1, 1, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.daggerBlackNumenorean), 1, 1, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.spearBlackNumenorean), 1, 1, 20), + new WeightedRandomChestContent(new ItemStack(LOTRMod.maceBlackNumenorean), 1, 1, 20)}); + + private MixinLOTRChestContents setDrinkVessels(LOTRItemMug.Vessel ... v) { + this.vesselTypes = v; + return this; + } + + +} diff --git a/src/main/java/com/zivilon/cinder_loe/recipes.java b/src/main/java/com/zivilon/cinder_loe/recipes.java index ccc23cf..8934ebf 100644 --- a/src/main/java/com/zivilon/cinder_loe/recipes.java +++ b/src/main/java/com/zivilon/cinder_loe/recipes.java @@ -37,6 +37,8 @@ public class recipes { registerBrewingRecipes(); registerMillstoneRecipes(); registerSmeltingRecipes(); + registerLindonRecipes(); + registerDaleRecipes(); } public static void registerGeneralRecipes() { @@ -386,7 +388,19 @@ public class recipes { Character.valueOf('X'), Items.iron_ingot)); LOTRRecipes.angmarRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bootsRhudaur), "X X", "X X", Character.valueOf('X'), Items.iron_ingot)); + LOTRRecipes.angmarRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.greatswordAngmar), " X ", " X", "Y ", + Character.valueOf('X'), LOTRMod.orcSteel, Character.valueOf('Y'), "stickWood")); } + + public static void registerLindonRecipes() { + LOTRRecipes.highElvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.greatswordLindon), " X ", " X", "Y ", + Character.valueOf('X'), LOTRMod.elfSteel, Character.valueOf('Y'), "stickWood")); + } + public static void registerDaleRecipes() { + LOTRRecipes.daleRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.greatswordDale), " X ", " X", "Y ", + Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), "stickWood")); + } + public static void registerArnorRecipes() { LOTRRecipes.rangerRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.helmetArnorBanner), "YYY", "Y Y", Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), Items.leather)); 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 716688a..849f105 100644 --- a/src/main/resources/assets/cinder_loe/lang/en_US.lang +++ b/src/main/resources/assets/cinder_loe/lang/en_US.lang @@ -347,6 +347,7 @@ entity.cinder_loe.Monkey.name=Monkey entity.cinder_loe.Usurper.name=Umbar Usurper lotr.enchant.protectWeak1=Dented +lotr.enchant.baneNPC=Lifebane lotr.enchant.protectWeak2=Defective lotr.enchant.protectRangedWeak1=Punctured lotr.enchant.protectRangedWeak2=Pierced diff --git a/src/main/resources/assets/lotr/textures/items/greatswordAngmar.png b/src/main/resources/assets/lotr/textures/items/greatswordAngmar.png new file mode 100644 index 0000000000000000000000000000000000000000..4e44c631d6440b3f2770f0365328d2bbfa4d48de GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jPK-BC>eK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?e4J^2=^xiyY zV7R!TU~LqmtK_^{vJ4Tnj#leegsok0FC#JeE(^mR{{P!X}{?WmOCf%|Rd6PhL9t^sO!7 zcb2;NO!_|Oz=rMZsY1_=8MiiGzsDdi-2QVff4a%Mw@%khtZcO>uges9mTsi~!*cGX u1x@mNS%G|oWRD45dI*UL`OvSj}Ky5HFasE6@fg!ItFh z?!w^4;K2~TdTm=bP=vFGJ3OPulFg(dRb zrpZs%<;*D>qNb%=j|-Pvt&^*tlN?&)Ynf+PNjJ z-?MDH_jL9Kv6=R(Lu3=Bq{Gqw?!|cUmZR8PViQU=+Q@0^QY!ds%_a~COUUoU-xDkhJ+lO-#3LD)pOM| zRjhrguBf~(!S literal 0 HcmV?d00001