diff --git a/src/main/java/ru/betterend/client/BetterEndClient.java b/src/main/java/ru/betterend/client/BetterEndClient.java index 5f52b0cc..57d04ae1 100644 --- a/src/main/java/ru/betterend/client/BetterEndClient.java +++ b/src/main/java/ru/betterend/client/BetterEndClient.java @@ -8,6 +8,7 @@ import ru.betterend.BetterEnd; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.interfaces.MultiModelItem; +import ru.betterend.item.CrystaliteArmor; import ru.betterend.registry.EndBlockEntityRenders; import ru.betterend.registry.EndEntitiesRenders; import ru.betterend.registry.EndModelProviders; @@ -25,6 +26,7 @@ public class BetterEndClient implements ClientModInitializer { EndEntitiesRenders.register(); EndModelProviders.register(); MultiModelItem.register(); + CrystaliteArmor.registerTooltips(); ClientOptions.init(); if (BetterEnd.isDevEnvironment()) { diff --git a/src/main/java/ru/betterend/item/CrystaliteArmor.java b/src/main/java/ru/betterend/item/CrystaliteArmor.java index 1208d070..26a26698 100644 --- a/src/main/java/ru/betterend/item/CrystaliteArmor.java +++ b/src/main/java/ru/betterend/item/CrystaliteArmor.java @@ -1,14 +1,27 @@ package ru.betterend.item; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; +import net.minecraft.ChatFormatting; +import net.minecraft.client.Minecraft; +import net.minecraft.network.chat.Style; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import ru.betterend.effects.EndStatusEffects; import ru.betterend.item.material.EndArmorMaterial; +import ru.betterend.registry.EndItems; public class CrystaliteArmor extends EndArmorItem { + protected final static TranslatableComponent CHEST_DESC; + protected final static TranslatableComponent BOOTS_DESC; + public CrystaliteArmor(EquipmentSlot equipmentSlot, Properties settings) { super(EndArmorMaterial.CRYSTALITE, equipmentSlot, settings); } @@ -25,4 +38,38 @@ public class CrystaliteArmor extends EndArmorItem { public static void applySetEffect(LivingEntity owner) { owner.addEffect(new MobEffectInstance(EndStatusEffects.CRYSTALITE_HEALTH_REGEN)); } + + @Environment(EnvType.CLIENT) + public static void registerTooltips() { + ItemTooltipCallback.EVENT.register((stack, context, lines) -> { + if (stack.getItem() instanceof CrystaliteArmor) { + boolean hasSet = false; + Player owner = Minecraft.getInstance().player; + if (owner != null) { + hasSet = hasFullSet(owner); + } + + TranslatableComponent setDesc = new TranslatableComponent("tooltip.armor.crystalite_set"); + setDesc.setStyle(Style.EMPTY.applyFormats(hasSet ? ChatFormatting.BLUE : ChatFormatting.DARK_GRAY, ChatFormatting.ITALIC)); + lines.add(TextComponent.EMPTY); + lines.add(setDesc); + + if (stack.getItem() == EndItems.CRYSTALITE_CHESTPLATE) { + lines.add(1, TextComponent.EMPTY); + lines.add(2, CHEST_DESC); + } else if (stack.getItem() == EndItems.CRYSTALITE_BOOTS) { + lines.add(1, TextComponent.EMPTY); + lines.add(2, BOOTS_DESC); + } + } + }); + } + + static { + Style descStyle = Style.EMPTY.applyFormats(ChatFormatting.DARK_AQUA, ChatFormatting.ITALIC); + CHEST_DESC = new TranslatableComponent("tooltip.armor.crystalite_chest"); + CHEST_DESC.setStyle(descStyle); + BOOTS_DESC = new TranslatableComponent("tooltip.armor.crystalite_boots"); + BOOTS_DESC.setStyle(descStyle); + } } diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index bb3bdb69..7c4b8d02 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -867,5 +867,9 @@ "item.betterend.terminite_forged_plate": "Terminite Forged Plate", "item.betterend.thallasium_forged_plate": "Thallasium Forged Plate", - "attribute.name.generic.blindness_resistance": "Blindness Resistance" + "attribute.name.generic.blindness_resistance": "Blindness Resistance", + + "tooltip.armor.crystalite_set": "Set bonus: Regeneration I", + "tooltip.armor.crystalite_chest": "Effect: Dig Speed I", + "tooltip.armor.crystalite_boots": "Effect: Swiftness I" } diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index 7a436e23..c45162ae 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -883,5 +883,9 @@ "item.betterend.terminite_forged_plate": "Терминитовая кованная пластина", "item.betterend.thallasium_forged_plate": "Талласиевая кованная пластина", - "attribute.name.generic.blindness_resistance": "Сопротивление ослеплению" + "attribute.name.generic.blindness_resistance": "Сопротивление ослеплению", + + "tooltip.armor.crystalite_set": "Бонус сета: Регенерация I", + "tooltip.armor.crystalite_chest": "Эффект: Ускорение I", + "tooltip.armor.crystalite_boots": "Эффект: Стремительность I" } \ No newline at end of file