diff options
| author | Yasin <LifeIsAParadox@users.noreply.github.com> | 2024-12-11 22:06:41 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-11 22:06:41 +0100 |
| commit | 28f0ace5576b69dc7e27888cc95de74b135c4000 (patch) | |
| tree | 7907d6052f657905057d92083718a16ff2874135 /src/main/java | |
| parent | b6bfebcfb3a8bb27fcf1e21839b8f5db0b2eee3f (diff) | |
| parent | 08b237757db08b14dd9de10cdfdaec4d95d794be (diff) | |
| download | Skyblocker-28f0ace5576b69dc7e27888cc95de74b135c4000.tar.gz Skyblocker-28f0ace5576b69dc7e27888cc95de74b135c4000.tar.bz2 Skyblocker-28f0ace5576b69dc7e27888cc95de74b135c4000.zip | |
Merge pull request #1070 from SkyblockerMod/1.21.4
1.21.4
Diffstat (limited to 'src/main/java')
30 files changed, 345 insertions, 834 deletions
diff --git a/src/main/java/de/hysky/skyblocker/debug/SnapshotDebug.java b/src/main/java/de/hysky/skyblocker/debug/SnapshotDebug.java index bd4abd2c..0f70d651 100644 --- a/src/main/java/de/hysky/skyblocker/debug/SnapshotDebug.java +++ b/src/main/java/de/hysky/skyblocker/debug/SnapshotDebug.java @@ -4,14 +4,17 @@ import de.hysky.skyblocker.utils.render.RenderHelper; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; import net.minecraft.SharedConstants; +import net.minecraft.client.MinecraftClient; import net.minecraft.text.Text; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; public class SnapshotDebug { + private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); private static final float[] RED = { 1.0f, 0.0f, 0.0f }; private static final float ALPHA = 0.5f; private static final float LINE_WIDTH = 8f; + private static final long AARON_WORLD_SEED = 5629719634239627355L; private static boolean isInSnapshot() { return !SharedConstants.getGameVersion().isStable(); @@ -24,9 +27,22 @@ public class SnapshotDebug { } private static void renderTest(WorldRenderContext wrc) { - RenderHelper.renderFilledWithBeaconBeam(wrc, new BlockPos(175, 63, -14), RED, ALPHA, true); - RenderHelper.renderLinesFromPoints(wrc, new Vec3d[] { new Vec3d(173, 66, -7.5), new Vec3d(178, 66, -7.5) }, RED, ALPHA, LINE_WIDTH, false); - RenderHelper.renderQuad(wrc, new Vec3d[] { new Vec3d(183, 66, -16), new Vec3d(183, 63, -16), new Vec3d(183, 63, -14), new Vec3d(183, 66, -14) }, RED, ALPHA, false); - RenderHelper.renderText(wrc, Text.of("Skyblocker on " + SharedConstants.getGameVersion().getName() + "!"), new Vec3d(175.5, 67.5, -7.5), false); + if (getSeed() == AARON_WORLD_SEED) { + RenderHelper.renderFilledWithBeaconBeam(wrc, new BlockPos(175, 63, -14), RED, ALPHA, true); + RenderHelper.renderLinesFromPoints(wrc, new Vec3d[] { new Vec3d(173, 66, -7.5), new Vec3d(178, 66, -7.5) }, RED, ALPHA, LINE_WIDTH, false); + RenderHelper.renderQuad(wrc, new Vec3d[] { new Vec3d(183, 66, -16), new Vec3d(183, 63, -16), new Vec3d(183, 63, -14), new Vec3d(183, 66, -14) }, RED, ALPHA, false); + RenderHelper.renderText(wrc, Text.of("Skyblocker on " + SharedConstants.getGameVersion().getName() + "!"), new Vec3d(175.5, 67.5, -7.5), false); + } else { + RenderHelper.renderFilledWithBeaconBeam(wrc, new BlockPos(-3, 63, 5), RED, ALPHA, true); + RenderHelper.renderOutline(wrc, new BlockPos(-3, 63, 5), RED, 5, true); // Use waypoint default line width + RenderHelper.renderLinesFromPoints(wrc, new Vec3d[] { new Vec3d(-2, 65, 6.5), new Vec3d(3, 65, 6.5) }, RED, ALPHA, LINE_WIDTH, false); + RenderHelper.renderLineFromCursor(wrc, new Vec3d(-2.5, 63.5, 5.5), RED, ALPHA, LINE_WIDTH); + RenderHelper.renderQuad(wrc, new Vec3d[] { new Vec3d(3, 66, 3), new Vec3d(3, 63, 3), new Vec3d(3, 63, 5), new Vec3d(3, 66, 5) }, RED, ALPHA, false); + RenderHelper.renderText(wrc, Text.of("Skyblocker on " + SharedConstants.getGameVersion().getName() + "!"), new Vec3d(0.5, 66.5, 6.5), false); + } + } + + private static long getSeed() { + return CLIENT.isIntegratedServerRunning() ? CLIENT.getServer().getOverworld().getSeed() : 0L; } } diff --git a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java index fc9381b9..c833d06c 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/HandledScreenMixin.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.mixins; +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.sugar.Local; import com.mojang.blaze3d.systems.RenderSystem; @@ -22,9 +23,11 @@ import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.container.ContainerSolver; import de.hysky.skyblocker.utils.container.ContainerSolverManager; +import net.fabricmc.fabric.api.client.screen.v1.Screens; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; +import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.client.render.RenderLayer; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.ItemStack; @@ -48,6 +51,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.List; +import java.util.Optional; import java.util.Set; import java.util.regex.Matcher; @@ -144,6 +148,22 @@ public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen } } + @ModifyExpressionValue(method = "mouseClicked", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;mouseClicked(DDI)Z")) + public boolean skyblocker$passThroughSearchFieldUnfocusedClicks(boolean superClicked, double mouseX, double mouseY, int button) { + //Handle Search Field clicks - as of 1.21.4 the game will only send clicks to the selected element rather than trying to send one to each and stopping when the first returns true (if any). + if (!superClicked) { + Optional<ClickableWidget> searchField = Screens.getButtons(this).stream() + .filter(InventorySearch.SearchTextFieldWidget.class::isInstance) + .findFirst(); + + if (searchField.isPresent() && searchField.get().mouseClicked(mouseX, mouseY, button)) { + return true; + } + } + + return superClicked; + } + /** * Draws the unselected tabs in front of the background blur, but behind the main inventory, similar to creative inventory tabs */ diff --git a/src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java b/src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java index d3b79efe..38c93253 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/InGameOverlayRendererMixin.java @@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.ModifyArg; @Mixin(InGameOverlayRenderer.class) public class InGameOverlayRendererMixin { - @ModifyArg(method = "renderFireOverlay", index = 2, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/BufferBuilder;vertex(Lorg/joml/Matrix4f;FFF)Lnet/minecraft/client/render/VertexConsumer;")) + @ModifyArg(method = "renderFireOverlay", index = 2, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/VertexConsumer;vertex(Lorg/joml/Matrix4f;FFF)Lnet/minecraft/client/render/VertexConsumer;")) private static float configureFlameHeight(float y) { return y - (0.5f - ((float) SkyblockerConfigManager.get().uiAndVisuals.flameOverlay.flameHeight / 200.0f)); } diff --git a/src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureMixin.java b/src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureDownloaderMixin.java index a9c07adc..f959e2d7 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/PlayerSkinTextureDownloaderMixin.java @@ -3,9 +3,7 @@ package de.hysky.skyblocker.mixins; import java.awt.Color; import java.util.Set; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -17,13 +15,15 @@ import com.llamalad7.mixinextras.sugar.ref.LocalBooleanRef; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.item.PlayerHeadHashCache; +import de.hysky.skyblocker.skyblock.profileviewer.ProfileViewerScreen; import de.hysky.skyblocker.utils.Utils; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.texture.NativeImage; -import net.minecraft.client.texture.PlayerSkinTexture; +import net.minecraft.client.texture.PlayerSkinTextureDownloader; import net.minecraft.util.math.ColorHelper; -@Mixin(PlayerSkinTexture.class) -public class PlayerSkinTextureMixin { +@Mixin(PlayerSkinTextureDownloader.class) +public class PlayerSkinTextureDownloaderMixin { @Unique private static final Set<String> STRIP_DE_FACTO_TRANSPARENT_PIXELS = Set.of( "4f3b91b6aa7124f30ed4ad1b2bb012a82985a33640555e18e792f96af8f58ec6", /*Titanium Necklace*/ @@ -32,14 +32,10 @@ public class PlayerSkinTextureMixin { @Unique private static final float BRIGHTNESS_THRESHOLD = 0.1f; - @Shadow - @Final - private String url; - @Inject(method = "remapTexture", at = @At("HEAD")) - private void skyblocker$determineSkinSource(NativeImage image, CallbackInfoReturnable<NativeImage> cir, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) { - if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.dontStripSkinAlphaValues) { - String skinTextureHash = PlayerHeadHashCache.getSkinHash(this.url); + private static void skyblocker$determineSkinSource(NativeImage image, String uri, CallbackInfoReturnable<NativeImage> cir, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) { + if (SkyblockerConfigManager.get().uiAndVisuals.dontStripSkinAlphaValues && (Utils.isOnSkyblock() || MinecraftClient.getInstance().currentScreen instanceof ProfileViewerScreen)) { + String skinTextureHash = PlayerHeadHashCache.getSkinHash(uri); int skinHash = skinTextureHash.hashCode(); isSkyblockSkinTexture.set(PlayerHeadHashCache.contains(skinHash)); @@ -50,8 +46,8 @@ public class PlayerSkinTextureMixin { } } - @WrapWithCondition(method = "remapTexture", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/texture/PlayerSkinTexture;stripAlpha(Lnet/minecraft/client/texture/NativeImage;IIII)V")) - private boolean skyblocker$dontStripAlphaValues(NativeImage image, int x1, int y1, int x2, int y2, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) { + @WrapWithCondition(method = "remapTexture", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/texture/PlayerSkinTextureDownloader;stripAlpha(Lnet/minecraft/client/texture/NativeImage;IIII)V")) + private static boolean skyblocker$dontStripAlphaValues(NativeImage image, int x1, int y1, int x2, int y2, @Share("isSkyblockSkinTexture") LocalBooleanRef isSkyblockSkinTexture) { return !isSkyblockSkinTexture.get(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java b/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java index 8285a823..96de8e2e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/CompactDamage.java @@ -1,7 +1,7 @@ package de.hysky.skyblocker.skyblock; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.item.CustomArmorAnimatedDyes; +import de.hysky.skyblocker.utils.OkLabColor; import net.minecraft.entity.decoration.ArmorStandEntity; import net.minecraft.text.MutableText; import net.minecraft.text.Text; @@ -57,10 +57,10 @@ public class CompactDamage { int length = prettifiedDmg.length(); for (int i = 0; i < length; i++) { prettierCustomName.append(Text.literal(prettifiedDmg.substring(i, i + 1)).withColor( - CustomArmorAnimatedDyes.interpolate( + OkLabColor.interpolate( SkyblockerConfigManager.get().uiAndVisuals.compactDamage.critDamageGradientStart.getRGB() & 0x00FFFFFF, SkyblockerConfigManager.get().uiAndVisuals.compactDamage.critDamageGradientEnd.getRGB() & 0x00FFFFFF, - i / (length - 1.0) + i / (length - 1.0f) ) )); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java b/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java index 6ca1f236..d1e147ce 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java @@ -57,24 +57,7 @@ public class InventorySearch { private static @NotNull TextFieldWidget getTextFieldWidget(HandledScreen<?> handledScreen) { // Slightly modified text field widget - TextFieldWidget textFieldWidget = new TextFieldWidget(Screens.getTextRenderer(handledScreen), 120, 20, Text.literal("Search Inventory")) { - @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - // Makes the widget catch all key presses (except escape) to fix closing the inventory when pressing E - // also check that the widget is focused and active - return super.keyPressed(keyCode, scanCode, modifiers) || (keyCode != GLFW.GLFW_KEY_ESCAPE && this.isNarratable() && this.isFocused()); - } - - // Unfocus when clicking outside - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (isFocused() && !clicked(mouseX, mouseY)) { - setFocused(false); - return false; - } - return super.mouseClicked(mouseX, mouseY, button); - } - }; + TextFieldWidget textFieldWidget = new SearchTextFieldWidget(handledScreen); textFieldWidget.setPosition((handledScreen.width - textFieldWidget.getWidth()) / 2, 15); textFieldWidget.setPlaceholder(Text.translatable("gui.socialInteractions.search_hint")); textFieldWidget.setText(search); // Restore previous search @@ -106,7 +89,6 @@ public class InventorySearch { * Button to open the search bar, for accessibility reasons (pojav and general preferences) */ private static class SearchTextWidget extends TextWidget { - private final Text underlinedText; private final Text normalText; private final HandledScreen<?> screen; @@ -137,4 +119,28 @@ public class InventorySearch { super.renderWidget(context, mouseX, mouseY, delta); } } + + public static class SearchTextFieldWidget extends TextFieldWidget { + public SearchTextFieldWidget(HandledScreen<?> handledScreen) { + super(Screens.getTextRenderer(handledScreen), 120, 20, Text.literal("Search Inventory")); + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + // Makes the widget catch all key presses (except escape) to fix closing the inventory when pressing E + // also check that the widget is focused and active + return super.keyPressed(keyCode, scanCode, modifiers) || (keyCode != GLFW.GLFW_KEY_ESCAPE && this.isNarratable() && this.isFocused()); + } + + // Unfocus when clicking outside + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + if (isFocused() && !isMouseOver(mouseX, mouseY)) { + setFocused(false); + return false; + } + + return super.mouseClicked(mouseX, mouseY, button); + } + } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java index 1fb763e2..97d593a2 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatRulesConfigListWidget.java @@ -124,7 +124,7 @@ public class ChatRulesConfigListWidget extends ElementListWidget<ChatRulesConfig .build(); deleteButton = ButtonWidget.builder(Text.translatable("selectServer.delete"), a -> { - oldScrollAmount = getScrollAmount(); + oldScrollAmount = getScrollY(); client.setScreen(new ConfirmScreen(this::deleteEntry, Text.translatable("skyblocker.config.chat.chatRules.screen.deleteQuestion"), Text.translatable("skyblocker.config.chat.chatRules.screen.deleteWarning", chatRule.getName()), Text.translatable("selectServer.deleteButton"), ScreenTexts.CANCEL)); }) .size(50, 20) @@ -155,7 +155,7 @@ public class ChatRulesConfigListWidget extends ElementListWidget<ChatRulesConfig } client.setScreen(screen); - setScrollAmount(oldScrollAmount); + setScrollY(oldScrollAmount); } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java index 3f7dfe56..ee490cf2 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java @@ -262,7 +262,7 @@ public class StaminaTestHelper { BlockPos playerPos = CLIENT.player.getBlockPos(); for (Box hole : wallHoles) { float[] color = isHoleIncoming(hole, holeDirections.get(hole), playerPos) ? INCOMING_COLOR : OUTGOING_COLOR; - RenderHelper.renderFilled(context, new BlockPos((int) hole.minX, (int) hole.minY, (int) hole.minZ), new Vec3d(hole.getLengthX(), hole.getLengthY(), hole.getLengthZ()), color, 0.3f, false); + RenderHelper.renderFilled(context, hole, color, 0.3f, false); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java index 70902a17..955d1a7a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/FinderSettingsContainer.java @@ -280,4 +280,14 @@ public class FinderSettingsContainer extends ContainerWidget { @Override protected void appendClickableNarrations(NarrationMessageBuilder builder) {} + + @Override + protected int getContentsHeightWithPadding() { + return 0; + } + + @Override + protected double getDeltaYPerScroll() { + return 0; + } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java index d2159751..0a96ade0 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/OptionDropdownWidget.java @@ -25,17 +25,15 @@ public class OptionDropdownWidget extends ElementListWidget<OptionDropdownWidget private float animationProgress = 0f; public OptionDropdownWidget(PartyFinderScreen screen, Text name, @Nullable Option selectedOption, int x, int y, int width, int height, int slotId) { - super(screen.getClient(), width, height, y, 15); + super(screen.getClient(), width, height, y, 15, 25); this.screen = screen; this.slotId = slotId; setX(x); - setRenderHeader(true, 25); this.name = name; this.selectedOption = selectedOption; } - @Override - protected boolean clickedHeader(int x, int y) { + private boolean clickedHeader(int x, int y) { if (!(x >= 0 && y >= 10 && x < getWidth() && y < 26)) return false; if (screen.isWaitingForServer()) return false; if (isOpen) { @@ -74,7 +72,13 @@ public class OptionDropdownWidget extends ElementListWidget<OptionDropdownWidget screen.clickAndWaitForServer(backButtonId); return true; } - return super.mouseClicked(mouseX, mouseY, button); + + if (super.mouseClicked(mouseX, mouseY, button)) return true; + + if (clickedHeader((int) (mouseX - (double) (this.getX() + this.width / 2 - this.getRowWidth() / 2)), (int) (mouseY - (double) this.getY()) + (int) this.getScrollY() - 4)) { + return true; + } + return false; } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java index 385b97f0..6a4e189a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/PartyEntryListWidget.java @@ -94,7 +94,7 @@ public class PartyEntryListWidget extends ElementListWidget<PartyEntry> { if (children().isEmpty()) { Text string = Text.translatable("skyblocker.partyFinder.loadingError"); TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; - context.drawTextWrapped(textRenderer, string, getRowLeft(), getY() + 10, getRowWidth(), 0xFFFFFFFF); + context.drawWrappedText(textRenderer, string, getRowLeft(), getY() + 10, getRowWidth(), 0xFFFFFFFF, false); } else super.renderWidget(context, mouseX, mouseY, delta); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/RangedValueWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/RangedValueWidget.java index 0fcd9d1b..fc6f09ff 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/RangedValueWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/partyfinder/RangedValueWidget.java @@ -266,4 +266,14 @@ public class RangedValueWidget extends ContainerWidget { @Override protected void appendClickableNarrations(NarrationMessageBuilder builder) {} + + @Override + protected int getContentsHeightWithPadding() { + return 0; + } + + @Override + protected double getDeltaYPerScroll() { + return 0; + } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarColorPopup.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarColorPopup.java index 64e79bab..c98e18f8 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarColorPopup.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarColorPopup.java @@ -113,5 +113,15 @@ public class EditBarColorPopup extends AbstractPopupScreen { super.setY(y); textFieldWidget.setY(getY()); } + + @Override + protected int getContentsHeightWithPadding() { + return 0; + } + + @Override + protected double getDeltaYPerScroll() { + return 0; + } } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarWidget.java index f74d53da..e3a94bcd 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/EditBarWidget.java @@ -324,4 +324,14 @@ public class EditBarWidget extends ContainerWidget { this.onChange = onChange; } } -} + + @Override + protected int getContentsHeightWithPadding() { + return 0; + } + + @Override + protected double getDeltaYPerScroll() { + return 0; + } +}
\ No newline at end of file diff --git a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java index a2fd510b..96f871d7 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/fancybars/StatusBar.java @@ -140,7 +140,7 @@ public class StatusBar implements Widget, Drawable, Element, Selectable { if (hasOverflow && overflowFill > 0) { - RenderHelper.renderNineSliceColored(context, BAR_FILL, barX + 1, y + 2, (int) ((barWith - 2) * overflowFill), 5, transparency(colors[1].getRGB())); + RenderHelper.renderNineSliceColored(context, BAR_FILL, barX + 1, y + 2, (int) ((barWith - 2) * Math.min(overflowFill, 1)), 5, transparency(colors[1].getRGB())); } //context.drawText(MinecraftClient.getInstance().textRenderer, gridX + " " + gridY + " s:" + size , x, y-9, Colors.WHITE, true); if (showText()) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorAnimatedDyes.java b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorAnimatedDyes.java index 0621fd24..48f345c4 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorAnimatedDyes.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorAnimatedDyes.java @@ -9,6 +9,7 @@ import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.ItemUtils; +import de.hysky.skyblocker.utils.OkLabColor; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.command.argumenttypes.color.ColorArgumentType; import dev.isxander.yacl3.config.v2.api.SerialEntry; @@ -21,7 +22,6 @@ import net.minecraft.command.CommandRegistryAccess; import net.minecraft.item.ItemStack; import net.minecraft.registry.tag.ItemTags; import net.minecraft.text.Text; -import net.minecraft.util.math.MathHelper; import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.argument; import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal; @@ -102,25 +102,6 @@ public class CustomArmorAnimatedDyes { return animatedDye.interpolate(trackedState); } - //Credit to https://codepen.io/OliverBalfour/post/programmatically-making-gradients - public static int interpolate(int firstColor, int secondColor, double percentage) { - int r1 = MathHelper.square((firstColor >> 16) & 0xFF); - int g1 = MathHelper.square((firstColor >> 8) & 0xFF); - int b1 = MathHelper.square(firstColor & 0xFF); - - int r2 = MathHelper.square((secondColor >> 16) & 0xFF); - int g2 = MathHelper.square((secondColor >> 8) & 0xFF);< |
