From 7f40d46ac2cea53840e28d399c4dd6e1818b2c67 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Tue, 18 May 2021 05:17:28 +0300 Subject: [PATCH] Tooltips fix --- .../ru/betterend/client/BetterEndClient.java | 2 - .../java/ru/betterend/item/ArmoredElytra.java | 10 +++- .../ru/betterend/item/CrystaliteArmor.java | 57 ++++++++++--------- .../ru/betterend/item/CrystaliteHelmet.java | 4 +- .../ru/betterend/item/CrystaliteLeggings.java | 4 +- .../java/ru/betterend/item/EndArmorItem.java | 5 +- .../mixin/common/LivingEntityMixin.java | 27 +++++---- 7 files changed, 61 insertions(+), 48 deletions(-) diff --git a/src/main/java/ru/betterend/client/BetterEndClient.java b/src/main/java/ru/betterend/client/BetterEndClient.java index 6dcd9c92..5f52b0cc 100644 --- a/src/main/java/ru/betterend/client/BetterEndClient.java +++ b/src/main/java/ru/betterend/client/BetterEndClient.java @@ -8,7 +8,6 @@ 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; @@ -26,7 +25,6 @@ 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/ArmoredElytra.java b/src/main/java/ru/betterend/item/ArmoredElytra.java index 6c2189e5..ba13bb3e 100644 --- a/src/main/java/ru/betterend/item/ArmoredElytra.java +++ b/src/main/java/ru/betterend/item/ArmoredElytra.java @@ -1,5 +1,7 @@ package ru.betterend.item; +import java.util.UUID; + import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry; @@ -7,13 +9,15 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; -import net.minecraft.world.item.*; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.ElytraItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; import ru.betterend.BetterEnd; import ru.betterend.interfaces.MultiModelItem; import ru.betterend.registry.EndItems; -import java.util.UUID; - public class ArmoredElytra extends EndArmorItem implements MultiModelItem { private static final UUID ARMOR_MODIFIER_UUID_CHEST = ARMOR_MODIFIER_UUID_PER_SLOT[2]; diff --git a/src/main/java/ru/betterend/item/CrystaliteArmor.java b/src/main/java/ru/betterend/item/CrystaliteArmor.java index 4b70f4d1..0135e2e4 100644 --- a/src/main/java/ru/betterend/item/CrystaliteArmor.java +++ b/src/main/java/ru/betterend/item/CrystaliteArmor.java @@ -1,10 +1,14 @@ package ru.betterend.item; +import java.util.List; + +import org.jetbrains.annotations.Nullable; + 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.Component; import net.minecraft.network.chat.Style; import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; @@ -13,6 +17,8 @@ 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 net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import ru.betterend.effects.EndStatusEffects; import ru.betterend.item.material.EndArmorMaterial; import ru.betterend.registry.EndItems; @@ -38,32 +44,31 @@ public class CrystaliteArmor extends EndArmorItem { public static void applySetEffect(LivingEntity owner) { owner.addEffect(new MobEffectInstance(EndStatusEffects.CRYSTALITE_HEALTH_REGEN)); } + + @Override + @Environment(EnvType.CLIENT) + public void appendHoverText(ItemStack stack, @Nullable Level level, List lines, TooltipFlag tooltip) { + super.appendHoverText(stack, level, lines, tooltip); + + 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); - /*@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); - } - } - }); - }*/ + 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); diff --git a/src/main/java/ru/betterend/item/CrystaliteHelmet.java b/src/main/java/ru/betterend/item/CrystaliteHelmet.java index 1231afeb..f44b6e39 100644 --- a/src/main/java/ru/betterend/item/CrystaliteHelmet.java +++ b/src/main/java/ru/betterend/item/CrystaliteHelmet.java @@ -1,13 +1,13 @@ package ru.betterend.item; +import java.util.UUID; + import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.item.Rarity; import ru.betterend.registry.EndAttributes; import ru.betterend.registry.EndItems; -import java.util.UUID; - public class CrystaliteHelmet extends CrystaliteArmor { public CrystaliteHelmet() { diff --git a/src/main/java/ru/betterend/item/CrystaliteLeggings.java b/src/main/java/ru/betterend/item/CrystaliteLeggings.java index fafccec3..45418c6d 100644 --- a/src/main/java/ru/betterend/item/CrystaliteLeggings.java +++ b/src/main/java/ru/betterend/item/CrystaliteLeggings.java @@ -1,13 +1,13 @@ package ru.betterend.item; +import java.util.UUID; + import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.item.Rarity; import ru.betterend.registry.EndItems; -import java.util.UUID; - public class CrystaliteLeggings extends CrystaliteArmor { public CrystaliteLeggings() { diff --git a/src/main/java/ru/betterend/item/EndArmorItem.java b/src/main/java/ru/betterend/item/EndArmorItem.java index b842c112..ed67581e 100644 --- a/src/main/java/ru/betterend/item/EndArmorItem.java +++ b/src/main/java/ru/betterend/item/EndArmorItem.java @@ -1,7 +1,10 @@ package ru.betterend.item; +import java.util.UUID; + import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; + import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; @@ -11,8 +14,6 @@ import net.minecraft.world.item.ArmorMaterial; import ru.betterend.patterns.Patterned; import ru.betterend.patterns.Patterns; -import java.util.UUID; - public class EndArmorItem extends ArmorItem implements Patterned { protected static final UUID[] ARMOR_MODIFIER_UUID_PER_SLOT = new UUID[] { diff --git a/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java b/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java index a82ff6c1..d89d4f7f 100644 --- a/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java +++ b/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java @@ -1,12 +1,27 @@ package ru.betterend.mixin.common; +import java.util.Collection; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.At.Shift; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + import net.minecraft.sounds.SoundEvent; import net.minecraft.util.Mth; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.*; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.MoverType; import net.minecraft.world.entity.ai.attributes.AttributeMap; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; @@ -17,21 +32,11 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.At.Shift; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyArg; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.interfaces.MobEffectApplier; import ru.betterend.item.ArmoredElytra; import ru.betterend.item.CrystaliteArmor; import ru.betterend.registry.EndAttributes; -import java.util.Collection; - @Mixin(LivingEntity.class) public abstract class LivingEntityMixin extends Entity {