Added advancements for Stalinium armor, updated existing advancements, improved tool hover text, and adjusted item properties for consistency.

This commit is contained in:
IM23a-spirgif
2025-06-19 10:32:03 +02:00
parent 0c9aa41431
commit 7f53e3a515
10 changed files with 186 additions and 93 deletions
@@ -49,19 +49,19 @@ public class ModItems {
public static final DeferredItem<ArmorItem> STALINIUM_HELMET = ITEMS.register("stalinium_helmet", public static final DeferredItem<ArmorItem> STALINIUM_HELMET = ITEMS.register("stalinium_helmet",
() -> new StaliniumHelmetItem(ModArmorMaterials.STALINIUM_ARMOR_MATERIAL, ArmorItem.Type.HELMET, () -> new StaliniumHelmetItem(ModArmorMaterials.STALINIUM_ARMOR_MATERIAL, ArmorItem.Type.HELMET,
new Item.Properties().component(DataComponents.UNBREAKABLE, new Unbreakable(true)))); new Item.Properties().component(DataComponents.UNBREAKABLE, new Unbreakable(true)).stacksTo(1)));
public static final DeferredItem<ArmorItem> STALINIUM_CHESTPLATE = ITEMS.register("stalinium_chestplate", public static final DeferredItem<ArmorItem> STALINIUM_CHESTPLATE = ITEMS.register("stalinium_chestplate",
() -> new StaliniumChestplateLeggingsItem(ModArmorMaterials.STALINIUM_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, () -> new StaliniumChestplateLeggingsItem(ModArmorMaterials.STALINIUM_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE,
new Item.Properties().component(DataComponents.UNBREAKABLE, new Unbreakable(true)))); new Item.Properties().component(DataComponents.UNBREAKABLE, new Unbreakable(true)).stacksTo(1)));
public static final DeferredItem<ArmorItem> STALINIUM_LEGGINGS = ITEMS.register("stalinium_leggings", public static final DeferredItem<ArmorItem> STALINIUM_LEGGINGS = ITEMS.register("stalinium_leggings",
() -> new StaliniumChestplateLeggingsItem(ModArmorMaterials.STALINIUM_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, () -> new StaliniumChestplateLeggingsItem(ModArmorMaterials.STALINIUM_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS,
new Item.Properties().component(DataComponents.UNBREAKABLE, new Unbreakable(true)))); new Item.Properties().component(DataComponents.UNBREAKABLE, new Unbreakable(true)).stacksTo(1)));
public static final DeferredItem<ArmorItem> STALINIUM_BOOTS = ITEMS.register("stalinium_boots", public static final DeferredItem<ArmorItem> STALINIUM_BOOTS = ITEMS.register("stalinium_boots",
() -> new StaliniumBootsItem(ModArmorMaterials.STALINIUM_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, () -> new StaliniumBootsItem(ModArmorMaterials.STALINIUM_ARMOR_MATERIAL, ArmorItem.Type.BOOTS,
new Item.Properties().component(DataComponents.UNBREAKABLE, new Unbreakable(true)))); new Item.Properties().component(DataComponents.UNBREAKABLE, new Unbreakable(true)).stacksTo(1)));
public static final DeferredItem<Item> STALINIUM_SMITHING_TEMPLATE = ITEMS.register("stalinium_smithing_template", public static final DeferredItem<Item> STALINIUM_SMITHING_TEMPLATE = ITEMS.register("stalinium_smithing_template",
() -> new Item(new Item.Properties())); () -> new Item(new Item.Properties()));
@@ -1,7 +1,9 @@
package net.krituximon.stalinium.item.custom; package net.krituximon.stalinium.item.custom;
import net.krituximon.stalinium.event.ComradeHandler; import net.krituximon.stalinium.event.ComradeHandler;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
@@ -9,6 +11,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.HoeItem; import net.minecraft.world.item.HoeItem;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Tier; import net.minecraft.world.item.Tier;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
@@ -32,8 +35,6 @@ public class StaliniumHoeItem extends HoeItem {
LivingEntity miner) { LivingEntity miner) {
if (level.isClientSide || !(miner instanceof Player player)) if (level.isClientSide || !(miner instanceof Player player))
return super.mineBlock(stack, level, state, pos, miner); return super.mineBlock(stack, level, state, pos, miner);
// only for fully grown crops:
if (state.getBlock() instanceof CropBlock) { if (state.getBlock() instanceof CropBlock) {
List<ItemStack> drops = Block.getDrops( List<ItemStack> drops = Block.getDrops(
state, state,
@@ -43,16 +44,10 @@ public class StaliniumHoeItem extends HoeItem {
player, player,
stack stack
); );
// break the crop:
level.setBlock(pos, Blocks.AIR.defaultBlockState(), 3); level.setBlock(pos, Blocks.AIR.defaultBlockState(), 3);
// 1) give base drops to the harvester:
for (ItemStack drop : drops) { for (ItemStack drop : drops) {
player.addItem(drop.copy()); player.addItem(drop.copy());
} }
// 2) if raining here, give them a second batch:
if (level.isRaining() && level.isRainingAt(pos)) { if (level.isRaining() && level.isRainingAt(pos)) {
for (ItemStack drop : drops) { for (ItemStack drop : drops) {
ItemStack extra = drop.copy(); ItemStack extra = drop.copy();
@@ -60,8 +55,6 @@ public class StaliniumHoeItem extends HoeItem {
player.addItem(extra); player.addItem(extra);
} }
} }
// 3) 50% chance to also duplicate to each ally in range:
if (!level.isClientSide() && level.getRandom().nextFloat() < 0.5f) { if (!level.isClientSide() && level.getRandom().nextFloat() < 0.5f) {
Optional<ComradeHandler.Party> partyOpt = ComradeHandler.findPartyOf(player.getUUID()); Optional<ComradeHandler.Party> partyOpt = ComradeHandler.findPartyOf(player.getUUID());
if (partyOpt.isPresent()) { if (partyOpt.isPresent()) {
@@ -89,4 +82,17 @@ public class StaliniumHoeItem extends HoeItem {
@Override public boolean isDamageable(ItemStack stack) { return false; } @Override public boolean isDamageable(ItemStack stack) { return false; }
@Override public boolean isDamaged(ItemStack stack) { return false; } @Override public boolean isDamaged(ItemStack stack) { return false; }
@Override
public void appendHoverText(ItemStack stack,
TooltipContext context,
List<Component> tooltipComponents,
TooltipFlag tooltipFlag) {
if (Screen.hasShiftDown()) {
tooltipComponents.add(Component.translatable("item.stalinium_hoe.tooltip_shift"));
} else {
tooltipComponents.add(Component.translatable("item.stalinium_hoe.tooltip"));
}
super.appendHoverText(stack, context, tooltipComponents, tooltipFlag);
}
} }
@@ -1,8 +1,10 @@
package net.krituximon.stalinium.item.custom; package net.krituximon.stalinium.item.custom;
import net.krituximon.stalinium.event.ComradeHandler; import net.krituximon.stalinium.event.ComradeHandler;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
@@ -10,6 +12,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.PickaxeItem; import net.minecraft.world.item.PickaxeItem;
import net.minecraft.world.item.Tier; import net.minecraft.world.item.Tier;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.DropExperienceBlock; import net.minecraft.world.level.block.DropExperienceBlock;
@@ -96,4 +99,17 @@ public class StaliniumPickaxeItem extends PickaxeItem {
public boolean isDamageable(ItemStack stack) { return false; } public boolean isDamageable(ItemStack stack) { return false; }
@Override @Override
public boolean isDamaged(ItemStack stack) { return false; } public boolean isDamaged(ItemStack stack) { return false; }
@Override
public void appendHoverText(ItemStack stack,
TooltipContext context,
List<Component> tooltipComponents,
TooltipFlag tooltipFlag) {
if (Screen.hasShiftDown()) {
tooltipComponents.add(Component.translatable("item.stalinium_pickaxe.tooltip_shift"));
} else {
tooltipComponents.add(Component.translatable("item.stalinium_pickaxe.tooltip"));
}
super.appendHoverText(stack, context, tooltipComponents, tooltipFlag);
}
} }
@@ -29,6 +29,19 @@
"advancements.stalinium.stalinium.cropaganda.desc": "Obtain the Stalinium Hoe", "advancements.stalinium.stalinium.cropaganda.desc": "Obtain the Stalinium Hoe",
"advancements.stalinium.stalinium.strike_state.title": "Strike for the State", "advancements.stalinium.stalinium.strike_state.title": "Strike for the State",
"advancements.stalinium.stalinium.strike_state.desc": "Obtain the Stalinium Sword", "advancements.stalinium.stalinium.strike_state.desc": "Obtain the Stalinium Sword",
"advancements.stalinium.stalinium.five_tool_plan.title": "The Five Tool Plan",
"advancements.stalinium.stalinium.five_tool_plan.desc": "Obtain all Stalinium Tools",
"advancements.stalinium.stalinium.cranial_defense.title": "Commissar of Cranial Defense",
"advancements.stalinium.stalinium.cranial_defense.desc": "Obtain the Stalinium Helmet",
"advancements.stalinium.stalinium.iron_curtain.title": "The Iron Curtain",
"advancements.stalinium.stalinium.iron_curtain.desc": "Obtain the Stalinium Chestplate",
"advancements.stalinium.stalinium.leg_lenin.title": "Leg day for Lenin",
"advancements.stalinium.stalinium.leg_lenin.desc": "Obtain the Stalinium Leggings",
"advancements.stalinium.stalinium.boots_bloc.title": "Boots of the Bloc",
"advancements.stalinium.stalinium.boots_bloc.desc": "Obtain the Stalinium Boots",
"advancements.stalinium.stalinium.comrade_prime.title": "Comrade Prime",
"advancements.stalinium.stalinium.comrade_prime.desc": "Wear a full set of Stalinium Armor",
"item.stalinium.stalinium_helmet": "Stalinium Helmet", "item.stalinium.stalinium_helmet": "Stalinium Helmet",
"item.stalinium.stalinium_chestplate": "Stalinium Chestplate", "item.stalinium.stalinium_chestplate": "Stalinium Chestplate",
@@ -0,0 +1,34 @@
{
"parent": "stalinium:stalinium/full_metal_marxist",
"criteria": {
"stalinium_boots": {
"conditions": {
"items": [
{
"items": "stalinium:stalinium_boots"
}
]
},
"trigger": "minecraft:inventory_changed"
}
},
"display": {
"background": "minecraft:textures/gui/advancements/backgrounds/stone.png",
"description": {
"translate": "advancements.stalinium.stalinium.boots_bloc.desc"
},
"icon": {
"count": 1,
"id": "stalinium:stalinium_boots"
},
"title": {
"translate": "advancements.stalinium.stalinium.boots_bloc.title"
}
},
"requirements": [
[
"stalinium_boots"
]
],
"sends_telemetry_event": true
}
@@ -0,0 +1,34 @@
{
"parent": "stalinium:stalinium/full_metal_marxist",
"criteria": {
"stalinium_helmet": {
"conditions": {
"items": [
{
"items": "stalinium:stalinium_helmet"
}
]
},
"trigger": "minecraft:inventory_changed"
}
},
"display": {
"background": "minecraft:textures/gui/advancements/backgrounds/stone.png",
"description": {
"translate": "advancements.stalinium.stalinium.cranial_defense.desc"
},
"icon": {
"count": 1,
"id": "stalinium:stalinium_helmet"
},
"title": {
"translate": "advancements.stalinium.stalinium.cranial_defense.title"
}
},
"requirements": [
[
"stalinium_helmet"
]
],
"sends_telemetry_event": true
}
@@ -1,78 +0,0 @@
{
"parent": "stalinium:stalinium/from_each_fortune",
"criteria": {
"stalinium_axe": {
"conditions": {
"items": [
{
"items": "stalinium:stalinium_axe"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"stalinium_pickaxe": {
"conditions": {
"items": [
{
"items": "stalinium:stalinium_pickaxe"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"stalinium_shovel": {
"conditions": {
"items": [
{
"items": "stalinium:stalinium_shovel"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"stalinium_hoe": {
"conditions": {
"items": [
{
"items": "stalinium:stalinium_hoe"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"stalinium_sword": {
"conditions": {
"items": [
{
"items": "stalinium:stalinium_sword"
}
]
},
"trigger": "minecraft:inventory_changed"
}
},
"display": {
"background": "minecraft:textures/gui/advancements/backgrounds/stone.png",
"description": {
"translate": "advancements.stalinium.stalinium.means_revolution.desc"
},
"icon": {
"count": 1,
"id": "stalinium:stalinium_pickaxe"
},
"title": {
"translate": "advancements.stalinium.stalinium.means_revolution.title"
}
},
"requirements": [
[
"stalinium_axe",
"stalinium_pickaxe",
"stalinium_shovel",
"stalinium_hoe",
"stalinium_sword"
]
],
"sends_telemetry_event": true
}
@@ -0,0 +1,34 @@
{
"parent": "stalinium:stalinium/full_metal_marxist",
"criteria": {
"stalinium_chestplate": {
"conditions": {
"items": [
{
"items": "stalinium:stalinium_chestplate"
}
]
},
"trigger": "minecraft:inventory_changed"
}
},
"display": {
"background": "minecraft:textures/gui/advancements/backgrounds/stone.png",
"description": {
"translate": "advancements.stalinium.stalinium.iron_curtain.desc"
},
"icon": {
"count": 1,
"id": "stalinium:stalinium_chestplate"
},
"title": {
"translate": "advancements.stalinium.stalinium.iron_curtain.title"
}
},
"requirements": [
[
"stalinium_chestplate"
]
],
"sends_telemetry_event": true
}
@@ -0,0 +1,34 @@
{
"parent": "stalinium:stalinium/full_metal_marxist",
"criteria": {
"stalinium_leggings": {
"conditions": {
"items": [
{
"items": "stalinium:stalinium_leggings"
}
]
},
"trigger": "minecraft:inventory_changed"
}
},
"display": {
"background": "minecraft:textures/gui/advancements/backgrounds/stone.png",
"description": {
"translate": "advancements.stalinium.stalinium.leg_lenin.desc"
},
"icon": {
"count": 1,
"id": "stalinium:stalinium_leggings"
},
"title": {
"translate": "advancements.stalinium.stalinium.leg_lenin.title"
}
},
"requirements": [
[
"stalinium_leggings"
]
],
"sends_telemetry_event": true
}
@@ -6,7 +6,7 @@
}, },
"display": { "display": {
"announce_to_chat": false, "announce_to_chat": false,
"background": "minecraft:textures/gui/advancements/backgrounds/stone.png", "background": "stalinium:textures/block/stalinium_block.png",
"description": { "description": {
"translate": "advancements.stalinium.stalinium.root.desc" "translate": "advancements.stalinium.stalinium.root.desc"
}, },