diff --git a/src/main/java/net/krituximon/stalinium/item/ModItems.java b/src/main/java/net/krituximon/stalinium/item/ModItems.java index e777d42..2ec06c7 100644 --- a/src/main/java/net/krituximon/stalinium/item/ModItems.java +++ b/src/main/java/net/krituximon/stalinium/item/ModItems.java @@ -49,19 +49,19 @@ public class ModItems { public static final DeferredItem STALINIUM_HELMET = ITEMS.register("stalinium_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 STALINIUM_CHESTPLATE = ITEMS.register("stalinium_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 STALINIUM_LEGGINGS = ITEMS.register("stalinium_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 STALINIUM_BOOTS = ITEMS.register("stalinium_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 STALINIUM_SMITHING_TEMPLATE = ITEMS.register("stalinium_smithing_template", () -> new Item(new Item.Properties())); diff --git a/src/main/java/net/krituximon/stalinium/item/custom/StaliniumHoeItem.java b/src/main/java/net/krituximon/stalinium/item/custom/StaliniumHoeItem.java index e396ce9..a4326f9 100644 --- a/src/main/java/net/krituximon/stalinium/item/custom/StaliniumHoeItem.java +++ b/src/main/java/net/krituximon/stalinium/item/custom/StaliniumHoeItem.java @@ -1,7 +1,9 @@ package net.krituximon.stalinium.item.custom; import net.krituximon.stalinium.event.ComradeHandler; +import net.minecraft.client.gui.screens.Screen; import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; 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.ItemStack; import net.minecraft.world.item.Tier; +import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; @@ -32,8 +35,6 @@ public class StaliniumHoeItem extends HoeItem { LivingEntity miner) { if (level.isClientSide || !(miner instanceof Player player)) return super.mineBlock(stack, level, state, pos, miner); - - // only for fully grown crops: if (state.getBlock() instanceof CropBlock) { List drops = Block.getDrops( state, @@ -43,16 +44,10 @@ public class StaliniumHoeItem extends HoeItem { player, stack ); - - // break the crop: level.setBlock(pos, Blocks.AIR.defaultBlockState(), 3); - - // 1) give base drops to the harvester: for (ItemStack drop : drops) { player.addItem(drop.copy()); } - - // 2) if raining here, give them a second batch: if (level.isRaining() && level.isRainingAt(pos)) { for (ItemStack drop : drops) { ItemStack extra = drop.copy(); @@ -60,8 +55,6 @@ public class StaliniumHoeItem extends HoeItem { player.addItem(extra); } } - - // 3) 50% chance to also duplicate to each ally in range: if (!level.isClientSide() && level.getRandom().nextFloat() < 0.5f) { Optional partyOpt = ComradeHandler.findPartyOf(player.getUUID()); if (partyOpt.isPresent()) { @@ -89,4 +82,17 @@ public class StaliniumHoeItem extends HoeItem { @Override public boolean isDamageable(ItemStack stack) { return false; } @Override public boolean isDamaged(ItemStack stack) { return false; } + + @Override + public void appendHoverText(ItemStack stack, + TooltipContext context, + List 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); + } } \ No newline at end of file diff --git a/src/main/java/net/krituximon/stalinium/item/custom/StaliniumPickaxeItem.java b/src/main/java/net/krituximon/stalinium/item/custom/StaliniumPickaxeItem.java index acfdda5..aa27517 100644 --- a/src/main/java/net/krituximon/stalinium/item/custom/StaliniumPickaxeItem.java +++ b/src/main/java/net/krituximon/stalinium/item/custom/StaliniumPickaxeItem.java @@ -1,8 +1,10 @@ package net.krituximon.stalinium.item.custom; import net.krituximon.stalinium.event.ComradeHandler; +import net.minecraft.client.gui.screens.Screen; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; 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.PickaxeItem; import net.minecraft.world.item.Tier; +import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.DropExperienceBlock; @@ -96,4 +99,17 @@ public class StaliniumPickaxeItem extends PickaxeItem { public boolean isDamageable(ItemStack stack) { return false; } @Override public boolean isDamaged(ItemStack stack) { return false; } + + @Override + public void appendHoverText(ItemStack stack, + TooltipContext context, + List 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); + } } \ No newline at end of file diff --git a/src/main/resources/assets/stalinium/lang/en_us.json b/src/main/resources/assets/stalinium/lang/en_us.json index 47fcd34..a66a27a 100644 --- a/src/main/resources/assets/stalinium/lang/en_us.json +++ b/src/main/resources/assets/stalinium/lang/en_us.json @@ -29,6 +29,19 @@ "advancements.stalinium.stalinium.cropaganda.desc": "Obtain the Stalinium Hoe", "advancements.stalinium.stalinium.strike_state.title": "Strike for the State", "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_chestplate": "Stalinium Chestplate", diff --git a/src/main/resources/data/stalinium/advancement/stalinium/boots_bloc.json b/src/main/resources/data/stalinium/advancement/stalinium/boots_bloc.json new file mode 100644 index 0000000..3cc10ec --- /dev/null +++ b/src/main/resources/data/stalinium/advancement/stalinium/boots_bloc.json @@ -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 +} \ No newline at end of file diff --git a/src/main/resources/data/stalinium/advancement/stalinium/cranial_defense.json b/src/main/resources/data/stalinium/advancement/stalinium/cranial_defense.json new file mode 100644 index 0000000..aafb38a --- /dev/null +++ b/src/main/resources/data/stalinium/advancement/stalinium/cranial_defense.json @@ -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 +} \ No newline at end of file diff --git a/src/main/resources/data/stalinium/advancement/stalinium/five_tool_plan.json b/src/main/resources/data/stalinium/advancement/stalinium/five_tool_plan.json deleted file mode 100644 index d36fd00..0000000 --- a/src/main/resources/data/stalinium/advancement/stalinium/five_tool_plan.json +++ /dev/null @@ -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 -} \ No newline at end of file diff --git a/src/main/resources/data/stalinium/advancement/stalinium/iron_curtain.json b/src/main/resources/data/stalinium/advancement/stalinium/iron_curtain.json new file mode 100644 index 0000000..9a3a36c --- /dev/null +++ b/src/main/resources/data/stalinium/advancement/stalinium/iron_curtain.json @@ -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 +} \ No newline at end of file diff --git a/src/main/resources/data/stalinium/advancement/stalinium/leg_lenin.json b/src/main/resources/data/stalinium/advancement/stalinium/leg_lenin.json new file mode 100644 index 0000000..8f90093 --- /dev/null +++ b/src/main/resources/data/stalinium/advancement/stalinium/leg_lenin.json @@ -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 +} \ No newline at end of file diff --git a/src/main/resources/data/stalinium/advancement/stalinium/root.json b/src/main/resources/data/stalinium/advancement/stalinium/root.json index e734d46..e6fc7b9 100644 --- a/src/main/resources/data/stalinium/advancement/stalinium/root.json +++ b/src/main/resources/data/stalinium/advancement/stalinium/root.json @@ -6,7 +6,7 @@ }, "display": { "announce_to_chat": false, - "background": "minecraft:textures/gui/advancements/backgrounds/stone.png", + "background": "stalinium:textures/block/stalinium_block.png", "description": { "translate": "advancements.stalinium.stalinium.root.desc" },