From 722003a56415b5c6b623e96e566bbdfc89befad4 Mon Sep 17 00:00:00 2001 From: IM23a-spirgif Date: Sun, 1 Jun 2025 13:34:01 +0200 Subject: [PATCH] Added potions and brewing recipes. Enhanced potion diversity with new effects. --- gradle.properties | 2 +- .../net/krituximon/stalinium/Stalinium.java | 3 +++ .../effect/StaliniumChargeEffect.java | 10 +++++-- .../krituximon/stalinium/event/ModEvents.java | 21 +++++++++++++++ .../stalinium/potion/ModPotions.java | 26 +++++++++++++++++++ .../assets/stalinium/lang/en_us.json | 10 ++++++- 6 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 src/main/java/net/krituximon/stalinium/event/ModEvents.java create mode 100644 src/main/java/net/krituximon/stalinium/potion/ModPotions.java diff --git a/gradle.properties b/gradle.properties index 821fbf0..5b1d967 100644 --- a/gradle.properties +++ b/gradle.properties @@ -36,7 +36,7 @@ mod_name=Stalinium # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=MIT # The mod version. See https://semver.org/ -mod_version=0.0.19 +mod_version=0.1.1 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/net/krituximon/stalinium/Stalinium.java b/src/main/java/net/krituximon/stalinium/Stalinium.java index 792cdea..db25ec7 100644 --- a/src/main/java/net/krituximon/stalinium/Stalinium.java +++ b/src/main/java/net/krituximon/stalinium/Stalinium.java @@ -3,10 +3,12 @@ package net.krituximon.stalinium; import net.krituximon.stalinium.block.ModBlocks; import net.krituximon.stalinium.block.entity.ModBlockEntities; import net.krituximon.stalinium.effect.ModEffects; +import net.krituximon.stalinium.event.ModEvents; import net.krituximon.stalinium.item.ModCreativeModeTabs; import net.krituximon.stalinium.item.ModItems; import net.krituximon.stalinium.particle.BloodParticle; import net.krituximon.stalinium.particle.ModParticles; +import net.krituximon.stalinium.potion.ModPotions; import net.krituximon.stalinium.recipe.ModRecipes; import net.krituximon.stalinium.screen.ModMenuTypes; import net.krituximon.stalinium.screen.custom.StaliniumPressScreen; @@ -74,6 +76,7 @@ public class Stalinium ModBlockEntities.register(modEventBus); ModMenuTypes.register(modEventBus); ModEffects.register(modEventBus); + ModPotions.register(modEventBus); } private void commonSetup(final FMLCommonSetupEvent event) diff --git a/src/main/java/net/krituximon/stalinium/effect/StaliniumChargeEffect.java b/src/main/java/net/krituximon/stalinium/effect/StaliniumChargeEffect.java index 1c01538..7e08f24 100644 --- a/src/main/java/net/krituximon/stalinium/effect/StaliniumChargeEffect.java +++ b/src/main/java/net/krituximon/stalinium/effect/StaliniumChargeEffect.java @@ -13,13 +13,13 @@ public class StaliniumChargeEffect extends MobEffect { this.addAttributeModifier( Attributes.MOVEMENT_SPEED, ResourceLocation.fromNamespaceAndPath(Stalinium.MODID, "stalinium_charge_speed"), - 0.2, + 0.15, AttributeModifier.Operation.ADD_MULTIPLIED_BASE ); this.addAttributeModifier( Attributes.KNOCKBACK_RESISTANCE, ResourceLocation.fromNamespaceAndPath(Stalinium.MODID, "stalinium_charge_knockback"), - 0.65, + 0.35, AttributeModifier.Operation.ADD_VALUE ); this.addAttributeModifier( @@ -28,5 +28,11 @@ public class StaliniumChargeEffect extends MobEffect { 0.1, AttributeModifier.Operation.ADD_MULTIPLIED_BASE ); + this.addAttributeModifier( + Attributes.ATTACK_DAMAGE, + ResourceLocation.fromNamespaceAndPath(Stalinium.MODID, "stalinium_charge_damage"), + 0.1, + AttributeModifier.Operation.ADD_MULTIPLIED_BASE + ); } } \ No newline at end of file diff --git a/src/main/java/net/krituximon/stalinium/event/ModEvents.java b/src/main/java/net/krituximon/stalinium/event/ModEvents.java new file mode 100644 index 0000000..6b65077 --- /dev/null +++ b/src/main/java/net/krituximon/stalinium/event/ModEvents.java @@ -0,0 +1,21 @@ +package net.krituximon.stalinium.event; + +import net.krituximon.stalinium.Stalinium; +import net.krituximon.stalinium.item.ModItems; +import net.krituximon.stalinium.potion.ModPotions; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.alchemy.PotionBrewing; +import net.minecraft.world.item.alchemy.Potions; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent; + +@EventBusSubscriber(modid = Stalinium.MODID, bus = EventBusSubscriber.Bus.GAME) +public class ModEvents { + @SubscribeEvent + public static void onBrewingRecipeRegister(RegisterBrewingRecipesEvent event) { + PotionBrewing.Builder builder = event.getBuilder(); + builder.addMix(Potions.AWKWARD, Items.POTATO, ModPotions.VODKA); + builder.addMix(ModPotions.VODKA, ModItems.STALINIUM_INGOT.get(), ModPotions.WEAPONS_GRADE_VODKA); + } +} diff --git a/src/main/java/net/krituximon/stalinium/potion/ModPotions.java b/src/main/java/net/krituximon/stalinium/potion/ModPotions.java new file mode 100644 index 0000000..7085030 --- /dev/null +++ b/src/main/java/net/krituximon/stalinium/potion/ModPotions.java @@ -0,0 +1,26 @@ +package net.krituximon.stalinium.potion; + +import net.krituximon.stalinium.Stalinium; +import net.krituximon.stalinium.effect.ModEffects; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.item.alchemy.Potion; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class ModPotions { + public static final DeferredRegister POTIONS = + DeferredRegister.create(BuiltInRegistries.POTION, Stalinium.MODID); + + public static final Holder VODKA = POTIONS.register("vodka", + () -> new Potion(new MobEffectInstance(MobEffects.CONFUSION, 1200, 0))); + + public static final Holder WEAPONS_GRADE_VODKA = POTIONS.register("weapons_grade_vodka", + () -> new Potion(new MobEffectInstance(ModEffects.STALINIUM_CHARGE, 1200, 2))); + + public static void register(IEventBus eventBus) { + POTIONS.register(eventBus); + } +} diff --git a/src/main/resources/assets/stalinium/lang/en_us.json b/src/main/resources/assets/stalinium/lang/en_us.json index 0dd5879..4fc30d8 100644 --- a/src/main/resources/assets/stalinium/lang/en_us.json +++ b/src/main/resources/assets/stalinium/lang/en_us.json @@ -49,5 +49,13 @@ "item.stalinium_chestplate.tooltip_shift": "Chestplate made out of §cStalinium\n\n§l§cIron Will of the Collective:§f\nWhen wearing the chestplate alongside the leggings, gain Resistance I.\n\n§fFull Armor Set Bonus:\n§l§cPower of the Many: Gain more hearts the more allies are nearby.", "item.stalinium_leggings.tooltip": "Leggings made out of §cStalinium\n\n§l§cIron Will of the Collective\n\n§fFull Armor Set Bonus:\n§l§cPower of the Many\n\n§f(Shift to expand)", - "item.stalinium_leggings.tooltip_shift": "Leggings made out of §cStalinium\n\n§l§cIron Will of the Collective:§f\nWhen wearing the chestplate alongside the leggings, gain Resistance I.\n\n§fFull Armor Set Bonus:\n§l§cPower of the Many: Gain more hearts the more allies are nearby." + "item.stalinium_leggings.tooltip_shift": "Leggings made out of §cStalinium\n\n§l§cIron Will of the Collective:§f\nWhen wearing the chestplate alongside the leggings, gain Resistance I.\n\n§fFull Armor Set Bonus:\n§l§cPower of the Many: Gain more hearts the more allies are nearby.", + + "item.minecraft.potion.effect.vodka": "Bottle of Vodka", + "item.minecraft.splash_potion.effect.vodka": "Throwable Bottle of Vodka", + "item.minecraft.lingering_potion.effect.vodka": "Lingering Bottle of Vodka", + + "item.minecraft.potion.effect.weapons_grade_vodka": "Weapons Grade Vodka", + "item.minecraft.splash_potion.effect.weapons_grade_vodka": "Throwable Weapons Grade Vodka", + "item.minecraft.lingering_potion.effect.weapons_grade_vodka": "Lingering Weapons Grade Vodka" }