From 561beafc2860e43ebab437a3ebfb382f6aba6bdb Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Mon, 1 Jan 2024 02:52:36 -0500 Subject: Correct Transparent Skin Pixels (#468) * Correct Transparent Skin Pixels * Enable by default --- .../de/hysky/skyblocker/config/SkyblockerConfig.java | 3 +++ .../skyblocker/config/categories/GeneralCategory.java | 9 +++++++++ .../skyblocker/mixin/PlayerSkinTextureMixin.java | 19 +++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 src/main/java/de/hysky/skyblocker/mixin/PlayerSkinTextureMixin.java (limited to 'src/main/java/de/hysky/skyblocker') diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java index 25d0c0bc..5f3063be 100644 --- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java @@ -163,6 +163,9 @@ public class SkyblockerConfig { @SerialEntry public boolean hideStatusEffectOverlay = false; + + @SerialEntry + public boolean dontStripSkinAlphaValues = true; @SerialEntry public TabHudConf tabHud = new TabHudConf(); diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java index 2065f6df..4d962b88 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java @@ -55,6 +55,15 @@ public class GeneralCategory { newValue -> config.general.hideStatusEffectOverlay = newValue) .controller(ConfigUtils::createBooleanController) .build()) + .option(Option.createBuilder() + .name(Text.translatable("text.autoconfig.skyblocker.option.general.dontStripSkinAlphaValues")) + .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.general.dontStripSkinAlphaValues.@Tooltip"))) + .binding(defaults.general.dontStripSkinAlphaValues, + () -> config.general.dontStripSkinAlphaValues, + newValue -> config.general.dontStripSkinAlphaValues = newValue) + .controller(ConfigUtils::createBooleanController) + .flag(OptionFlag.ASSET_RELOAD) + .build()) //Tab Hud .group(OptionGroup.createBuilder() diff --git a/src/main/java/de/hysky/skyblocker/mixin/PlayerSkinTextureMixin.java b/src/main/java/de/hysky/skyblocker/mixin/PlayerSkinTextureMixin.java new file mode 100644 index 00000000..ea771c1e --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixin/PlayerSkinTextureMixin.java @@ -0,0 +1,19 @@ +package de.hysky.skyblocker.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.Utils; +import dev.cbyrne.betterinject.annotations.Inject; +import net.minecraft.client.texture.PlayerSkinTexture; + +@Mixin(PlayerSkinTexture.class) +public class PlayerSkinTextureMixin { + + @Inject(method = "stripAlpha", at = @At("HEAD"), cancellable = true) + private static void skyblocker$dontStripAlphaValues(CallbackInfo ci) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.dontStripSkinAlphaValues) ci.cancel(); + } +} -- cgit