diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-10-19 01:29:34 -0400 |
|---|---|---|
| committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-10-21 01:13:20 -0400 |
| commit | 58a167d36c9607b1c45cbf3aac2f8083581464d7 (patch) | |
| tree | 7c90f44a75204d8af893e0309d4b255f8e72c9d8 /src/main/java | |
| parent | 6bcf1db390b03cc58debd75121489650294f3760 (diff) | |
| download | Skyblocker-58a167d36c9607b1c45cbf3aac2f8083581464d7.tar.gz Skyblocker-58a167d36c9607b1c45cbf3aac2f8083581464d7.tar.bz2 Skyblocker-58a167d36c9607b1c45cbf3aac2f8083581464d7.zip | |
1.21.2-rc1
Diffstat (limited to 'src/main/java')
14 files changed, 47 insertions, 116 deletions
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<TooltipComponent> components, int x, int y, TooltipPositioner positioner, @Nullable Identifier texture); - - @Invoker - void invokeDrawTexturedQuad(Function<Identifier, RenderLayer> 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<AuctionHouseS // Scrollbar if (prevPageVisible) { if (onScrollbarTop(mouseX, mouseY)) - context.drawSprite(RenderLayer::getGuiTextured, UP_ARROW.get(), 159, 13, 6, 3); - else context.drawSprite(RenderLayer::getGuiTextured, UP_ARROW.get(), 159, 13, 6, 3, ColorHelper.getArgb(137, 137, 137)); + context.drawSpriteStretched(RenderLayer::getGuiTextured, UP_ARROW.get(), 159, 13, 6, 3); + else context.drawSpriteStretched(RenderLayer::getGuiTextured, UP_ARROW.get(), 159, 13, 6, 3, ColorHelper.getArgb(137, 137, 137)); } if (nextPageVisible) { if (onScrollbarBottom(mouseX, mouseY)) - context.drawSprite(RenderLayer::getGuiTextured, DOWN_ARROW.get(), 159, 72, 6, 3); - else context.drawSprite(RenderLayer::getGuiTextured, DOWN_ARROW.get(), 159, 72, 6, 3, ColorHelper.getArgb(137, 137, 137)); + context.drawSpriteStretched(RenderLayer::getGuiTextured, DOWN_ARROW.get(), 159, 72, 6, 3); + else context.drawSpriteStretched(RenderLayer::getGuiTextured, DOWN_ARROW.get(), 159, 72, 6, 3, ColorHelper.getArgb(137, 137, 137)); } context.drawText(textRenderer, String.format("%d/%d", currentPage, totalPages), 111, 6, Colors.GRAY, false); if (totalPages <= 1) diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java index c70038fd..9e6516b6 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/GlaciteColdOverlay.java @@ -1,6 +1,5 @@ package de.hysky.skyblocker.skyblock.dwarven; -import com.mojang.blaze3d.systems.RenderSystem; import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Utils; @@ -58,7 +57,7 @@ public class GlaciteColdOverlay { * @see InGameHud#renderOverlay as this is a carbon copy of it */ private static void renderOverlay(DrawContext context, Identifier texture, float opacity) { - int i = ColorHelper.getWhite(opacity); + int white = ColorHelper.getWhite(opacity); context.drawTexture( RenderLayer::getGuiTexturedOverlay, texture, @@ -70,7 +69,7 @@ public class GlaciteColdOverlay { context.getScaledWindowHeight(), context.getScaledWindowWidth(), context.getScaledWindowHeight(), - i + white ); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java b/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java index 75eae6c6..f261a13f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java @@ -55,7 +55,6 @@ public class EventToast implements Toast { drawTimer(context, 30, y); context.drawItemWithoutEntity(icon, 8, getHeight()/2 - 8); - //return startTime > 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<SkyblockCraftingT this.addDrawableChild(moreCraftsButton); } assert (client != null ? client.player : null) != null; - //FIXME remove this - it appears it is no longer the case that the recipe book replaces the screen handler in 1.21.2? - client.player.currentScreenHandler = handler; // recipe book replaces it with the Dummy one fucking DUMBASS this.addSelectableChild(this.recipeBook); this.setInitialFocus(this.recipeBook); this.titleX = 29; @@ -67,7 +65,7 @@ public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingT @Override public void handledScreenTick() { super.handledScreenTick(); - //this.recipeBook.update(); + this.recipeBook.update(); if (moreCraftsButton == null) return; ItemStack stack = handler.slots.get(26).getStack(); moreCraftsButton.active = stack.isEmpty() || stack.isOf(Items.PLAYER_HEAD); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java index db411e49..62458c0d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemListWidget.java @@ -33,7 +33,7 @@ public class ItemListWidget /*extends RecipeBookWidget*/ { private static int currentTab = 0; - public ItemListWidget() {//AbstractCraftingRecipeBookWidget + public ItemListWidget() { super(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java index 8066764a..913107e5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java @@ -110,7 +110,7 @@ public class SkyblockCraftingRecipeResults implements RecipeAreaDisplay { if (this.nextPageButton.active) this.nextPageButton.render(context, mouseX, mouseY, delta); } - //TODO enable scissor + //TODO enable scissor? private void drawRecipeDisplay(DrawContext context, TextRenderer textRenderer, int x, int y, int mouseX, int mouseY) { //Render the "Craft Text" which is usually a requirement (e.g. Wolf Slayer 7) String craftText = this.recipeResults.get(this.currentPage).getCraftText(); @@ -198,6 +198,8 @@ public class SkyblockCraftingRecipeResults implements RecipeAreaDisplay { } closeRecipeView(); + } else { + hideShowPageButtons(); //This branch is called when the recipe book is reinitialized (usually from resizing) } } @@ -242,6 +244,13 @@ public class SkyblockCraftingRecipeResults implements RecipeAreaDisplay { } } + hideShowPageButtons(); + } + + /** + * Hides or shows the page buttons. + */ + private void hideShowPageButtons() { //Show the previous page button if the page count is greater than 0 this.prevPageButton.active = this.currentPage > 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<NoopRecipeScreenH this.searchField.setEditableColor(0xFFFFFF); this.searchField.setText(defaultSearchText); this.searchField.setPlaceholder(SEARCH_HINT_TEXT); + //This field's name is misleading, the rectangle is actually the area of the magnifying glass icon rather than the entire search field + this.searchFieldRect = ScreenRect.of(NavigationAxis.HORIZONTAL, left + 8, this.searchField.getY(), this.searchField.getX() - left, this.searchField.getHeight()); //Setup Tabs this.tabButtons.clear(); @@ -100,10 +104,10 @@ public class SkyblockRecipeBookWidget extends RecipeBookWidget<NoopRecipeScreenH public void render(DrawContext context, int mouseX, int mouseY, float delta) { if (this.isOpen()) { context.getMatrices().push(); - context.getMatrices().translate(0.0F, 0.0F, 100.0F); + context.getMatrices().translate(0.0f, 0.0f, 100.0f); int left = accessor().invokeGetLeft(); int top = accessor().invokeGetTop(); - context.drawTexture(RenderLayer::getGuiTextured, TEXTURE, left, top, 1.0F, 1.0F, IMAGE_WIDTH, IMAGE_HEIGHT, 256, 256); + context.drawTexture(RenderLayer::getGuiTextured, TEXTURE, left, top, 1.0f, 1.0f, IMAGE_WIDTH, IMAGE_HEIGHT, 256, 256); for (Pair<RecipeTab, SkyblockRecipeTabButton> tabButton : this.tabButtons) { tabButton.right().render(context, mouseX, mouseY, delta); @@ -187,11 +191,10 @@ public class SkyblockRecipeBookWidget extends RecipeBookWidget<NoopRecipeScreenH return (RecipeBookWidgetAccessor) this; } - /** - * No-op as we don't use this, the logic just crashes the game. - */ @Override - protected void refreshResults(boolean resetCurrentPage, boolean filteringCraftable) {} + protected void refreshResults(boolean resetCurrentPage, boolean filteringCraftable) { + this.currentTab.left().updateSearchResults(this.searchField.getText()); + } /** * Sets the "Toggle Craftable" Button texture. diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java index ae2ce7da..6debc355 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java @@ -5,7 +5,6 @@ import com.mojang.logging.LogUtils; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.mixins.accessors.BeaconBlockEntityRendererInvoker; -import de.hysky.skyblocker.mixins.accessors.DrawContextInvoker; import de.hysky.skyblocker.utils.Boxes; import de.hysky.skyblocker.utils.render.culling.OcclusionCulling; import de.hysky.skyblocker.utils.render.title.Title; @@ -20,8 +19,6 @@ import net.minecraft.client.gl.ShaderProgramKeys; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.*; import net.minecraft.client.render.VertexFormat.DrawMode; -import net.minecraft.client.texture.Scaling; -import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.BufferAllocator; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.world.ClientWorld; @@ -405,65 +402,8 @@ public class RenderHelper { return x >= 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; } |
