From 58a167d36c9607b1c45cbf3aac2f8083581464d7 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sat, 19 Oct 2024 01:29:34 -0400 Subject: 1.21.2-rc1 --- .../mixins/AbstractInventoryScreenMixin.java | 21 ------- .../skyblocker/mixins/InventoryScreenMixin.java | 16 +++++- .../mixins/accessors/DrawContextInvoker.java | 5 -- .../skyblock/auction/AuctionBrowserScreen.java | 8 +-- .../skyblock/dwarven/GlaciteColdOverlay.java | 5 +- .../skyblocker/skyblock/events/EventToast.java | 3 - .../skyblock/events/JacobEventToast.java | 1 - .../skyblock/item/ItemRarityBackgrounds.java | 2 +- .../skyblock/item/SkyblockCraftingTableScreen.java | 4 +- .../skyblock/itemlist/ItemListWidget.java | 2 +- .../recipebook/SkyblockCraftingRecipeResults.java | 11 +++- .../itemlist/recipebook/SkyblockCraftingTab.java | 5 +- .../recipebook/SkyblockRecipeBookWidget.java | 15 +++-- .../skyblocker/utils/render/RenderHelper.java | 65 +--------------------- 14 files changed, 47 insertions(+), 116 deletions(-) delete mode 100644 src/main/java/de/hysky/skyblocker/mixins/AbstractInventoryScreenMixin.java (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/mixins/AbstractInventoryScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/AbstractInventoryScreenMixin.java deleted file mode 100644 index 4e95e3dc..00000000 --- a/src/main/java/de/hysky/skyblocker/mixins/AbstractInventoryScreenMixin.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.hysky.skyblocker.mixins; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; - -import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.Utils; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.ingame.InventoryScreen; -import net.minecraft.client.gui.screen.ingame.StatusEffectsDisplay; - -@Mixin(InventoryScreen.class) -public class AbstractInventoryScreenMixin { - - @WrapWithCondition(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/StatusEffectsDisplay;drawStatusEffects(Lnet/minecraft/client/gui/DrawContext;IIF)V")) - private boolean skyblocker$dontDrawStatusEffects(StatusEffectsDisplay statusEffectsDisplay, DrawContext context, int mouseX, int mouseY, float tickDelta) { - return !(Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.hideStatusEffectOverlay); - } -} diff --git a/src/main/java/de/hysky/skyblocker/mixins/InventoryScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/InventoryScreenMixin.java index 1c57a466..da35dba2 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/InventoryScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/InventoryScreenMixin.java @@ -1,13 +1,18 @@ package de.hysky.skyblocker.mixins; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; + import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.itemlist.recipebook.SkyblockRecipeBookWidget; import de.hysky.skyblocker.utils.Utils; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.InventoryScreen; +import net.minecraft.client.gui.screen.ingame.StatusEffectsDisplay; import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyArg; @Mixin(InventoryScreen.class) public abstract class InventoryScreenMixin { @@ -21,4 +26,9 @@ public abstract class InventoryScreenMixin { private int skyblocker$moveButton(int x) { return Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.showEquipmentInInventory ? x + 21 : x; } + + @WrapWithCondition(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/StatusEffectsDisplay;drawStatusEffects(Lnet/minecraft/client/gui/DrawContext;IIF)V")) + private boolean skyblocker$dontDrawStatusEffects(StatusEffectsDisplay statusEffectsDisplay, DrawContext context, int mouseX, int mouseY, float tickDelta) { + return !(Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.hideStatusEffectOverlay); + } } diff --git a/src/main/java/de/hysky/skyblocker/mixins/accessors/DrawContextInvoker.java b/src/main/java/de/hysky/skyblocker/mixins/accessors/DrawContextInvoker.java index 312f0f69..5d516be2 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/accessors/DrawContextInvoker.java +++ b/src/main/java/de/hysky/skyblocker/mixins/accessors/DrawContextInvoker.java @@ -4,7 +4,6 @@ import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.gui.tooltip.TooltipPositioner; -import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import org.jetbrains.annotations.Nullable; @@ -12,14 +11,10 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; import java.util.List; -import java.util.function.Function; @Mixin(DrawContext.class) public interface DrawContextInvoker { @Invoker void invokeDrawTooltip(TextRenderer textRenderer, List components, int x, int y, TooltipPositioner positioner, @Nullable Identifier texture); - - @Invoker - void invokeDrawTexturedQuad(Function renderLayers, Identifier texture, int x1, int x2, int y1, int y2, float u1, float u2, float v1, float v2, int color); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java index 2625c3b6..f0908918 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java @@ -150,14 +150,14 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI 5_000 ? Visibility.HIDE: Visibility.SHOW; } protected int drawMessage(DrawContext context, int x, int y, int color) { @@ -92,8 +91,6 @@ public class EventToast implements Toast { public int getHeight() { return Math.max(getInnerContentsHeight() + 12 + 2, 32); } - - //FIXME no clue if this works as intended @Override public Visibility getVisibility() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java b/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java index e1b76c7a..39d5e4cf 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java @@ -54,6 +54,5 @@ public class JacobEventToast extends EventToast { context.drawItemWithoutEntity(icon, 8, getHeight() / 2 - 8); matrices.pop(); - //return startTime > 5_000 ? Visibility.HIDE : Visibility.SHOW; } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java index 9331362d..b771b067 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemRarityBackgrounds.java @@ -97,7 +97,7 @@ public class ItemRarityBackgrounds { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); - context.drawSprite(RenderLayer::getGuiTextured, SPRITE.get(), x, y, 16, 16, ColorHelper.fromFloats(SkyblockerConfigManager.get().general.itemInfoDisplay.itemRarityBackgroundsOpacity, rarity.r, rarity.g, rarity.b)); + context.drawSpriteStretched(RenderLayer::getGuiTextured, SPRITE.get(), x, y, 16, 16, ColorHelper.fromFloats(SkyblockerConfigManager.get().general.itemInfoDisplay.itemRarityBackgroundsOpacity, rarity.r, rarity.g, rarity.b)); RenderSystem.disableBlend(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java index 305bd023..1deb029a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java @@ -57,8 +57,6 @@ public class SkyblockCraftingTableScreen extends HandledScreen 0; //Show the next page button if the current page is less than the highest possible page diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingTab.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingTab.java index 7b912fc3..480c91df 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingTab.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingTab.java @@ -5,6 +5,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.util.math.MathHelper; /** * The Skyblock Crafting Tab which handles the mouse clicks & rendering for the results page and the search field. @@ -34,7 +35,9 @@ record SkyblockCraftingTab(SkyblockRecipeBookWidget recipeBook, ItemStack icon, return true; } else { if (recipeBook.searchField != null) { - if (recipeBook.searchField.mouseClicked(mouseX, mouseY, button)) { + boolean magnifyingGlassClicked = recipeBook.searchFieldRect != null && recipeBook.searchFieldRect.contains(MathHelper.floor(mouseX), MathHelper.floor(mouseY)); + + if (magnifyingGlassClicked || recipeBook.searchField.mouseClicked(mouseX, mouseY, button)) { results.closeRecipeView(); recipeBook.searchField.setFocused(true); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockRecipeBookWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockRecipeBookWidget.java index b7af2913..4e920a1d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockRecipeBookWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockRecipeBookWidget.java @@ -11,6 +11,8 @@ import de.hysky.skyblocker.mixins.accessors.RecipeBookWidgetAccessor; import it.unimi.dsi.fastutil.Pair; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.ScreenRect; +import net.minecraft.client.gui.navigation.NavigationAxis; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.gui.screen.recipebook.GhostRecipe; import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; @@ -66,6 +68,8 @@ public class SkyblockRecipeBookWidget extends RecipeBookWidget tabButton : this.tabButtons) { tabButton.right().render(context, mouseX, mouseY, delta); @@ -187,11 +191,10 @@ public class SkyblockRecipeBookWidget extends RecipeBookWidget= x1 && x <= x2 && y >= y1 && y <= y2; } - private static void drawSprite(DrawContext context, Sprite sprite, int i, int j, int k, int l, int x, int y, int width, int height, int color) { - if (width == 0 || height == 0) { - return; - } - ((DrawContextInvoker) context).invokeDrawTexturedQuad(RenderLayer::getGuiTextured, sprite.getAtlasId(), x, x + width, y, y + height, sprite.getFrameU((float) k / (float) i), sprite.getFrameU((float) (k + width) / (float) i), sprite.getFrameV((float) l / (float) j), sprite.getFrameV((float) (l + height) / (float) j), color); - } - - private static void drawSpriteTiled(DrawContext context, Sprite sprite, int x, int y, int width, int height, int i, int j, int tileWidth, int tileHeight, int k, int l, int color) { - if (width <= 0 || height <= 0) { - return; - } - if (tileWidth <= 0 || tileHeight <= 0) { - throw new IllegalArgumentException("Tiled sprite texture size must be positive, got " + tileWidth + "x" + tileHeight); - } - for (int m = 0; m < width; m += tileWidth) { - int n = Math.min(tileWidth, width - m); - for (int o = 0; o < height; o += tileHeight) { - int p = Math.min(tileHeight, height - o); - drawSprite(context, sprite, k, l, i, j, x + m, y + o, n, p, color); - } - } - } - public static void renderNineSliceColored(DrawContext context, Identifier texture, int x, int y, int width, int height, float red, float green, float blue, float alpha) { - Sprite sprite = MinecraftClient.getInstance().getGuiAtlasManager().getSprite(texture); - Scaling scaling = MinecraftClient.getInstance().getGuiAtlasManager().getScaling(sprite); - if (!(scaling instanceof Scaling.NineSlice nineSlice)) return; - Scaling.NineSlice.Border border = nineSlice.border(); - - int color = ColorHelper.fromFloats(alpha, red, green, blue); - int i = Math.min(border.left(), width / 2); - int j = Math.min(border.right(), width / 2); - int k = Math.min(border.top(), height / 2); - int l = Math.min(border.bottom(), height / 2); - if (width == nineSlice.width() && height == nineSlice.height()) { - drawSprite(context, sprite, nineSlice.width(), nineSlice.height(), 0, 0, x, y, width, height, color); - return; - } - if (height == nineSlice.height()) { - drawSprite(context, sprite, nineSlice.width(), nineSlice.height(), 0, 0, x, y, i, height, color); - drawSpriteTiled(context, sprite, x + i, y, width - j - i, height, i, 0, nineSlice.width() - j - i, nineSlice.height(), nineSlice.width(), nineSlice.height(), color); - drawSprite(context, sprite, nineSlice.width(), nineSlice.height(), nineSlice.width() - j, 0, x + width - j, y, j, height, color); - return; - } - if (width == nineSlice.width()) { - drawSprite(context, sprite, nineSlice.width(), nineSlice.height(), 0, 0, x, y, width, k, color); - drawSpriteTiled(context, sprite, x, y + k, width, height - l - k, 0, k, nineSlice.width(), nineSlice.height() - l - k, nineSlice.width(), nineSlice.height(), color); - drawSprite(context, sprite, nineSlice.width(), nineSlice.height(), 0, nineSlice.height() - l, x, y + height - l, width, l, color); - return; - } - drawSprite(context, sprite, nineSlice.width(), nineSlice.height(), 0, 0, x, y, i, k, color); - drawSpriteTiled(context, sprite, x + i, y, width - j - i, k, i, 0, nineSlice.width() - j - i, k, nineSlice.width(), nineSlice.height(), color); - drawSprite(context, sprite, nineSlice.width(), nineSlice.height(), nineSlice.width() - j, 0, x + width - j, y, j, k, color); - drawSprite(context, sprite, nineSlice.width(), nineSlice.height(), 0, nineSlice.height() - l, x, y + height - l, i, l, color); - drawSpriteTiled(context, sprite, x + i, y + height - l, width - j - i, l, i, nineSlice.height() - l, nineSlice.width() - j - i, l, nineSlice.width(), nineSlice.height(), color); - drawSprite(context, sprite, nineSlice.width(), nineSlice.height(), nineSlice.width() - j, nineSlice.height() - l, x + width - j, y + height - l, j, l, color); - drawSpriteTiled(context, sprite, x, y + k, i, height - l - k, 0, k, i, nineSlice.height() - l - k, nineSlice.width(), nineSlice.height(), color); - drawSpriteTiled(context, sprite, x + i, y + k, width - j - i, height - l - k, i, k, nineSlice.width() - j - i, nineSlice.height() - l - k, nineSlice.width(), nineSlice.height(), color); - drawSpriteTiled(context, sprite, x + width - j, y + k, i, height - l - k, nineSlice.width() - j, k, j, nineSlice.height() - l - k, nineSlice.width(), nineSlice.height(), color); + context.drawGuiTexture(RenderLayer::getGuiTextured, texture, x, y, width, height, ColorHelper.fromFloats(alpha, red, green, blue)); } private static final float[] colorBuffer = new float[4]; @@ -482,8 +422,7 @@ public class RenderHelper { MethodType mt = MethodType.methodType(void.class, Runnable.class); return lookup.findStatic(deferredTaskClass, "schedule", mt); - } catch (Throwable ignored) { - } + } catch (Throwable ignored) {} return null; } -- cgit