aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-01-01 02:52:36 -0500
committerGitHub <noreply@github.com>2024-01-01 02:52:36 -0500
commit561beafc2860e43ebab437a3ebfb382f6aba6bdb (patch)
tree0aa7bc4c7ca4303410332202ae6ede5035699284
parent37eb5bfad25b1e0c3326ed27744c38f81513b5e4 (diff)
downloadSkyblocker-561beafc2860e43ebab437a3ebfb382f6aba6bdb.tar.gz
Skyblocker-561beafc2860e43ebab437a3ebfb382f6aba6bdb.tar.bz2
Skyblocker-561beafc2860e43ebab437a3ebfb382f6aba6bdb.zip
Correct Transparent Skin Pixels (#468)
* Correct Transparent Skin Pixels * Enable by default
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/PlayerSkinTextureMixin.java19
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json2
-rw-r--r--src/main/resources/skyblocker.mixins.json1
5 files changed, 34 insertions, 0 deletions
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.<Boolean>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();
+ }
+}
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index da805ac9..8fa9c701 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -295,6 +295,8 @@
"text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "Hide empty item tooltips in menus",
"text.autoconfig.skyblocker.option.general.hideStatusEffectOverlay": "Hide Status Effect Overlay",
+ "text.autoconfig.skyblocker.option.general.dontStripSkinAlphaValues": "Correct Transparent Skin Pixels",
+ "text.autoconfig.skyblocker.option.general.dontStripSkinAlphaValues.@Tooltip": "When enabled, the alpha values of pixels in skin textures are no longer stripped while in Skyblock.\n\nThis results in the \"filler\" pixels on items using Player Heads to now be completely transparent, although this may have some side effects in odd cases.",
"skyblocker.updaterepository.failed": "§cUpdating local repository failed. Remove files manually and restart game.",
diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json
index 6c887fad..22480cc7 100644
--- a/src/main/resources/skyblocker.mixins.json
+++ b/src/main/resources/skyblocker.mixins.json
@@ -26,6 +26,7 @@
"MinecraftClientMixin",
"PlayerListHudMixin",
"PlayerSkinProviderMixin",
+ "PlayerSkinTextureMixin",
"ScoreboardMixin",
"SocialInteractionsPlayerListWidgetMixin",
"WorldRendererMixin",