From bb7a36717f295619813e63dbd44bde489bce984e Mon Sep 17 00:00:00 2001 From: IM23a-spirgif Date: Tue, 27 May 2025 10:50:24 +0200 Subject: [PATCH] Added Stalinium Pickaxe with full functionality, including model, recipe, localization, and creative tab entry. Adjusted attack speed modifier for Stalinium Charge Effect for better balance. --- .../datagen/ModItemModelProvider.java | 1 + .../stalinium/datagen/ModRecipeProvider.java | 16 ++++++++++++ .../effect/StaliniumChargeEffect.java | 2 +- .../stalinium/item/ModCreativeModeTabs.java | 1 + .../krituximon/stalinium/item/ModItems.java | 3 +++ .../stalinium/item/StaliniumPickaxeItem.java | 26 +++++++++++++++++++ .../assets/stalinium/lang/en_us.json | 5 +++- 7 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 src/main/java/net/krituximon/stalinium/item/StaliniumPickaxeItem.java diff --git a/src/main/java/net/krituximon/stalinium/datagen/ModItemModelProvider.java b/src/main/java/net/krituximon/stalinium/datagen/ModItemModelProvider.java index e6c4ec8..dc3347b 100644 --- a/src/main/java/net/krituximon/stalinium/datagen/ModItemModelProvider.java +++ b/src/main/java/net/krituximon/stalinium/datagen/ModItemModelProvider.java @@ -20,5 +20,6 @@ public class ModItemModelProvider extends ItemModelProvider { handheldItem(ModItems.STALINIUM_AXE.get()); handheldItem(ModItems.STALINIUM_SHOVEL.get()); handheldItem(ModItems.STALINIUM_HOE.get()); + handheldItem(ModItems.STALINIUM_PICKAXE.get()); } } diff --git a/src/main/java/net/krituximon/stalinium/datagen/ModRecipeProvider.java b/src/main/java/net/krituximon/stalinium/datagen/ModRecipeProvider.java index 17c4df1..d0b3169 100644 --- a/src/main/java/net/krituximon/stalinium/datagen/ModRecipeProvider.java +++ b/src/main/java/net/krituximon/stalinium/datagen/ModRecipeProvider.java @@ -68,5 +68,21 @@ public class ModRecipeProvider extends RecipeProvider implements IConditionBuild .define('I', ModItems.STALINIUM_INGOT.get()) .define('G', Items.GOLD_BLOCK) .unlockedBy("has_ingot", has(ModItems.STALINIUM_INGOT)).save(recipeOutput); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.STALINIUM_HOE.get()) + .pattern("II") + .pattern(" G") + .pattern(" G") + .define('I', ModItems.STALINIUM_INGOT.get()) + .define('G', Items.GOLD_BLOCK) + .unlockedBy("has_ingot", has(ModItems.STALINIUM_INGOT)).save(recipeOutput); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.STALINIUM_PICKAXE.get()) + .pattern("III") + .pattern(" G ") + .pattern(" G ") + .define('I', ModItems.STALINIUM_INGOT.get()) + .define('G', Items.GOLD_BLOCK) + .unlockedBy("has_ingot", has(ModItems.STALINIUM_INGOT)).save(recipeOutput); } } diff --git a/src/main/java/net/krituximon/stalinium/effect/StaliniumChargeEffect.java b/src/main/java/net/krituximon/stalinium/effect/StaliniumChargeEffect.java index d5ce10e..f6b4df5 100644 --- a/src/main/java/net/krituximon/stalinium/effect/StaliniumChargeEffect.java +++ b/src/main/java/net/krituximon/stalinium/effect/StaliniumChargeEffect.java @@ -25,7 +25,7 @@ public class StaliniumChargeEffect extends MobEffect { this.addAttributeModifier( Attributes.ATTACK_SPEED, ResourceLocation.fromNamespaceAndPath(Stalinium.MODID, "stalinium_charge_toughness"), - 0.15, + 0.1, AttributeModifier.Operation.ADD_MULTIPLIED_BASE ); } diff --git a/src/main/java/net/krituximon/stalinium/item/ModCreativeModeTabs.java b/src/main/java/net/krituximon/stalinium/item/ModCreativeModeTabs.java index 59b2419..e071c47 100644 --- a/src/main/java/net/krituximon/stalinium/item/ModCreativeModeTabs.java +++ b/src/main/java/net/krituximon/stalinium/item/ModCreativeModeTabs.java @@ -30,6 +30,7 @@ public class ModCreativeModeTabs { output.accept(ModItems.STALINIUM_AXE.get()); output.accept(ModItems.STALINIUM_SHOVEL.get()); output.accept(ModItems.STALINIUM_HOE.get()); + output.accept(ModItems.STALINIUM_PICKAXE.get()); }).build()); public static void register(IEventBus eventBus) { diff --git a/src/main/java/net/krituximon/stalinium/item/ModItems.java b/src/main/java/net/krituximon/stalinium/item/ModItems.java index 452d9b4..c2751f5 100644 --- a/src/main/java/net/krituximon/stalinium/item/ModItems.java +++ b/src/main/java/net/krituximon/stalinium/item/ModItems.java @@ -36,6 +36,9 @@ public class ModItems { () -> new StaliniumHoeItem(ModTiers.STALINIUM, new Item.Properties() .attributes(HoeItem.createAttributes(ModTiers.STALINIUM, 1.0f, -3.0f)))); + public static final DeferredItem STALINIUM_PICKAXE = ITEMS.register("stalinium_pickaxe", + () -> new StaliniumPickaxeItem(ModTiers.STALINIUM, new Item.Properties() + .attributes(PickaxeItem.createAttributes(ModTiers.STALINIUM, 1.0f, -2.8f)))); public static void register(IEventBus eventBus) { ITEMS.register(eventBus); } diff --git a/src/main/java/net/krituximon/stalinium/item/StaliniumPickaxeItem.java b/src/main/java/net/krituximon/stalinium/item/StaliniumPickaxeItem.java new file mode 100644 index 0000000..4b613c0 --- /dev/null +++ b/src/main/java/net/krituximon/stalinium/item/StaliniumPickaxeItem.java @@ -0,0 +1,26 @@ +package net.krituximon.stalinium.item; + +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.*; + +public class StaliniumPickaxeItem extends PickaxeItem { + public StaliniumPickaxeItem(Tier tier, Item.Properties properties) { + super(tier, properties); + } + + @Override + public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { + return true; + } + + @Override + public boolean isDamageable(ItemStack stack) { + return false; + } + + @Override + public boolean isDamaged(ItemStack stack) { + return false; + } +} + diff --git a/src/main/resources/assets/stalinium/lang/en_us.json b/src/main/resources/assets/stalinium/lang/en_us.json index ac0db50..ebb79b5 100644 --- a/src/main/resources/assets/stalinium/lang/en_us.json +++ b/src/main/resources/assets/stalinium/lang/en_us.json @@ -5,6 +5,7 @@ "item.stalinium.stalinium_axe": "Stalinium Axe", "item.stalinium.stalinium_shovel": "Stalinium Shovel", "item.stalinium.stalinium_hoe": "Stalinium Hoe", + "item.stalinium.stalinium_pickaxe": "Stalinium Pickaxe", "item.stalinium.soviet_anthem_music_disc": "Soviet Anthem Music Disc", "item.stalinium.soviet_anthem_music_disc.desc": "Ministry of Defense of the USSR - Soviet Union national anthem", @@ -14,5 +15,7 @@ "block.stalinium.compressed_bedrock": "Compressed Bedrock", "block.stalinium.stalinium_press": "Stalinium Press", - "creativetab.stalinium.stalinium": "Stalinium" + "creativetab.stalinium.stalinium": "Stalinium", + + "effect.stalinium.stalinium_charge": "For the Motherland!" }