Enhanced armor stats and tooltips. Improved clarity with detailed shift-based descriptions.

This commit is contained in:
IM23a-spirgif
2025-05-30 18:54:41 +02:00
parent a82d366550
commit 3c4ef551bc
5 changed files with 84 additions and 15 deletions
@@ -20,12 +20,12 @@ import java.util.function.Supplier;
public class ModArmorMaterials {
public static final Holder<ArmorMaterial> STALINIUM_ARMOR_MATERIAL = register("stalinium",
Util.make(new EnumMap<>(ArmorItem.Type.class), attribute -> {
attribute.put(ArmorItem.Type.BOOTS, 5);
attribute.put(ArmorItem.Type.LEGGINGS, 7);
attribute.put(ArmorItem.Type.CHESTPLATE, 9);
attribute.put(ArmorItem.Type.HELMET, 5);
attribute.put(ArmorItem.Type.BODY, 11);
}), 16, 2f, 0.1f, () -> ModItems.STALINIUM_INGOT.get());
attribute.put(ArmorItem.Type.BOOTS, 6);
attribute.put(ArmorItem.Type.LEGGINGS, 8);
attribute.put(ArmorItem.Type.CHESTPLATE, 10);
attribute.put(ArmorItem.Type.HELMET, 6);
attribute.put(ArmorItem.Type.BODY, 12);
}), 25, 3.5f, 0.15f, () -> ModItems.STALINIUM_INGOT.get());
private static Holder<ArmorMaterial> register(String name, EnumMap<ArmorItem.Type, Integer> typeProtection,
@@ -1,7 +1,9 @@
package net.krituximon.stalinium.item.custom;
import net.krituximon.stalinium.item.ModArmorMaterials;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.core.Holder;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
@@ -10,6 +12,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.ArmorMaterial;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.AABB;
@@ -64,4 +67,14 @@ public class StaliniumBootsItem extends ArmorItem {
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_boots.tooltip_shift"));
} else {
tooltipComponents.add(Component.translatable("item.stalinium_boots.tooltip"));
}
super.appendHoverText(stack, context, tooltipComponents, tooltipFlag);
}
}
@@ -2,15 +2,19 @@ package net.krituximon.stalinium.item.custom;
import com.google.common.collect.ImmutableMap;
import net.krituximon.stalinium.item.ModArmorMaterials;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.core.Holder;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.ArmorMaterial;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.AABB;
@@ -80,10 +84,8 @@ public class StaliniumChestplateLeggingsItem extends ArmorItem {
if (leggingsStack.isEmpty() || chestplateStack.isEmpty()) {
return false;
}
ArmorItem leggingsItem = (ArmorItem) leggingsStack.getItem();
ArmorItem chestplateItem = (ArmorItem) chestplateStack.getItem();
return leggingsItem.getMaterial() == mapArmorMaterial
&& chestplateItem.getMaterial() == mapArmorMaterial;
}
@@ -103,4 +105,21 @@ public class StaliniumChestplateLeggingsItem extends ArmorItem {
public boolean isDamaged(ItemStack stack) {
return false;
}
@Override
public void appendHoverText(ItemStack stack, TooltipContext context, List<Component> tooltipComponents, TooltipFlag tooltipFlag) {
super.appendHoverText(stack, context, tooltipComponents, tooltipFlag);
boolean shift = Screen.hasShiftDown();
EquipmentSlot slot = this.getEquipmentSlot();
if (slot == EquipmentSlot.CHEST) {
tooltipComponents.add( shift
? Component.translatable("item.stalinium_chestplate.tooltip_shift")
: Component.translatable("item.stalinium_chestplate.tooltip") );
} else if (slot == EquipmentSlot.LEGS) {
tooltipComponents.add( shift
? Component.translatable("item.stalinium_leggings.tooltip_shift")
: Component.translatable("item.stalinium_leggings.tooltip") );
}
}
}
@@ -1,7 +1,9 @@
package net.krituximon.stalinium.item.custom;
import net.krituximon.stalinium.Stalinium;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.core.Holder;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
@@ -10,10 +12,13 @@ import net.minecraft.world.item.ArmorMaterial;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.item.TooltipFlag;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.event.entity.player.AttackEntityEvent;
import java.util.List;
public class StaliniumHelmetItem extends ArmorItem {
public StaliniumHelmetItem(Holder<ArmorMaterial> material, Type slot, Properties props) {
super(material, slot, props);
@@ -41,4 +46,24 @@ public class StaliniumHelmetItem extends ArmorItem {
));
}
}
@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<Component> tooltipComponents, TooltipFlag tooltipFlag) {
if (Screen.hasShiftDown()) {
tooltipComponents.add(Component.translatable("item.stalinium_helmet.tooltip_shift"));
} else {
tooltipComponents.add(Component.translatable("item.stalinium_helmet.tooltip"));
}
super.appendHoverText(stack, context, tooltipComponents, tooltipFlag);
}
}