Skip to content

Commit 0e969a7

Browse files
committed
Fix widget hover text color
1 parent 14a4dbb commit 0e969a7

File tree

2 files changed

+30
-18
lines changed

2 files changed

+30
-18
lines changed

src/main/java/org/visuals/legacy/animatium/mixins/v1/gui/hover_text_color/MixinAbstractButton_LegacyTextHoverColor.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,30 @@
2525

2626
package org.visuals.legacy.animatium.mixins.v1.gui.hover_text_color;
2727

28+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
29+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
2830
import net.minecraft.client.gui.components.AbstractButton;
2931
import net.minecraft.client.gui.components.AbstractWidget;
3032
import net.minecraft.network.chat.Component;
3133
import org.spongepowered.asm.mixin.Mixin;
34+
import org.spongepowered.asm.mixin.injection.At;
35+
import org.visuals.legacy.animatium.Animatium;
36+
import org.visuals.legacy.animatium.config.AnimatiumConfig;
3237

3338
@Mixin(AbstractButton.class)
3439
public abstract class MixinAbstractButton_LegacyTextHoverColor extends AbstractWidget {
3540
public MixinAbstractButton_LegacyTextHoverColor(int x, int y, int width, int height, Component message) {
3641
super(x, y, width, height, message);
3742
}
3843

39-
// TODO: 1.21.11
40-
/*@ModifyConstant(method = "renderWidget", constant = @Constant(intValue = 0xFFFFFFFF))
41-
private int animatium$renderWidget$old$textColor(int constant) {
42-
if (Animatium.isEnabled() && AnimatiumConfig.instance().screen.legacyWidgetHoverTextColor) {
43-
return !active ? 0xFFE0E0E0 : (isHoveredOrFocused() ? 0xFFFFFFA0 : 0xFFE0E0E0);
44-
} else {
45-
return constant;
46-
}
47-
}*/
44+
// TODO: Maybe find the core place to do this better in 1.21.11+?
45+
@WrapOperation(method = "renderDefaultLabel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/components/AbstractButton;getMessage()Lnet/minecraft/network/chat/Component;"))
46+
private Component animatium$renderWidget$old$textColor(final AbstractButton instance, final Operation<Component> original) {
47+
final Component component = original.call(instance);
48+
if (Animatium.isEnabled() && AnimatiumConfig.instance().screen.legacyWidgetHoverTextColor) {
49+
return component.copy().withColor(!active ? 0xFFE0E0E0 : (isHoveredOrFocused() ? 0xFFFFFFA0 : 0xFFE0E0E0));
50+
} else {
51+
return component;
52+
}
53+
}
4854
}

src/main/java/org/visuals/legacy/animatium/mixins/v1/gui/hover_text_color/MixinAbstractSliderButton_LegacyTextHoverColor.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,30 @@
2525

2626
package org.visuals.legacy.animatium.mixins.v1.gui.hover_text_color;
2727

28+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
29+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
2830
import net.minecraft.client.gui.components.AbstractSliderButton;
2931
import net.minecraft.client.gui.components.AbstractWidget;
3032
import net.minecraft.network.chat.Component;
3133
import org.spongepowered.asm.mixin.Mixin;
34+
import org.spongepowered.asm.mixin.injection.At;
35+
import org.visuals.legacy.animatium.Animatium;
36+
import org.visuals.legacy.animatium.config.AnimatiumConfig;
3237

3338
@Mixin(AbstractSliderButton.class)
3439
public abstract class MixinAbstractSliderButton_LegacyTextHoverColor extends AbstractWidget {
3540
public MixinAbstractSliderButton_LegacyTextHoverColor(int x, int y, int width, int height, Component message) {
3641
super(x, y, width, height, message);
3742
}
3843

39-
// TODO: 1.21.11
40-
/*@ModifyConstant(method = "renderWidget", constant = @Constant(intValue = 0xFFFFFFFF))
41-
private int animatium$renderWidget$old$textColor(int constant) {
42-
if (Animatium.isEnabled() && AnimatiumConfig.instance().screen.legacyWidgetHoverTextColor) {
43-
return !active ? 0xFFE0E0E0 : (isHoveredOrFocused() ? 0xFFFFFFA0 : 0xFFE0E0E0);
44-
} else {
45-
return constant;
46-
}
47-
}*/
44+
// TODO: Maybe find the core place to do this better in 1.21.11+?
45+
@WrapOperation(method = "renderWidget", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/components/AbstractSliderButton;getMessage()Lnet/minecraft/network/chat/Component;"))
46+
private Component animatium$renderWidget$old$textColor(final AbstractSliderButton instance, final Operation<Component> original) {
47+
final Component component = original.call(instance);
48+
if (Animatium.isEnabled() && AnimatiumConfig.instance().screen.legacyWidgetHoverTextColor) {
49+
return component.copy().withColor(!active ? 0xFFE0E0E0 : (isHoveredOrFocused() ? 0xFFFFFFA0 : 0xFFE0E0E0));
50+
} else {
51+
return component;
52+
}
53+
}
4854
}

0 commit comments

Comments
 (0)