diff --git a/CHANGELOG.md b/CHANGELOG.md index 69f27a2..73e3167 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -118,3 +118,4 @@ - Fixed ignoring `HideFlags` in armor NBT ([#98](https://github.com/Queerbric/Inspecio/issues/98)). - Fixed messed up colors in shulker box previews ([#102](https://github.com/Queerbric/Inspecio/issues/102)). - Fixed unbounded hunger/saturation tooltips with auto-wrapping ([#105](https://github.com/Queerbric/Inspecio/issues/105)). +- (1.20+) Added ability to see both sides of a sign in a tooltip by pressing the control key. diff --git a/gradle.properties b/gradle.properties index 8af920a..4f13484 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,11 +1,11 @@ org.gradle.jvmargs=-Xmx1G # Fabric properties -minecraft_version=1.19.4 -quilt_mappings=5 +minecraft_version=1.20 +quilt_mappings=1 loader_version=0.18.5 -qsl_version=5.0.0-beta.1 +qsl_version=6.0.1 # Mod properties mod_version=1.8.1 diff --git a/src/main/java/io/github/queerbric/inspecio/Inspecio.java b/src/main/java/io/github/queerbric/inspecio/Inspecio.java index b81a371..95fc310 100644 --- a/src/main/java/io/github/queerbric/inspecio/Inspecio.java +++ b/src/main/java/io/github/queerbric/inspecio/Inspecio.java @@ -66,6 +66,7 @@ RegistryKeys.ITEM, new Identifier(NAMESPACE, "hidden_effects"), TagType.CLIENT_FALLBACK ); public static final RandomGenerator COMMON_RANDOM = new LegacySimpleRandom(System.currentTimeMillis()); + public static final Identifier GUI_ICONS_TEXTURE = new Identifier("textures/gui/icons.png"); private static InspecioConfig config = InspecioConfig.defaultConfig(); private static ModContainer mod; diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/ArmorStandTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/ArmorStandTooltipComponent.java index 839b219..d67ba7d 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/ArmorStandTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/ArmorStandTooltipComponent.java @@ -22,9 +22,9 @@ import io.github.queerbric.inspecio.mixin.EntityAccessor; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.item.TooltipData; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; @@ -67,8 +67,9 @@ public static Optional of(NbtCompound itemNbt) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { if (this.shouldRender()) { + MatrixStack matrices = graphics.getMatrices(); matrices.push(); matrices.translate(30, 0, 0); ((EntityAccessor) this.entity).setTouchingWater(true); diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/ArmorTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/ArmorTooltipComponent.java index 0d1b08b..7d2427e 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/ArmorTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/ArmorTooltipComponent.java @@ -17,15 +17,11 @@ package io.github.queerbric.inspecio.tooltip; -import com.mojang.blaze3d.systems.RenderSystem; import io.github.queerbric.inspecio.Inspecio; import io.github.queerbric.inspecio.mixin.ItemStackAccessor; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.gui.hud.InGameHud; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ArmorItem; import net.minecraft.item.ItemStack; import org.quiltmc.qsl.tooltip.api.ConvertibleTooltipData; @@ -68,13 +64,12 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { - RenderSystem.setShaderTexture(0, InGameHud.GUI_ICONS_TEXTURE); + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { for (int i = 0; i < this.prot / 2; i++) { - DrawableHelper.drawTexture(matrices, x + i * 9, y, 34, 9, 9, 9, 256, 256); + graphics.drawTexture(Inspecio.GUI_ICONS_TEXTURE, x + i * 9, y, 34, 9, 9, 9, 256, 256); } if (this.prot % 2 == 1) { - DrawableHelper.drawTexture(matrices, x + this.prot / 2 * 9, y, 25, 9, 9, 9, 256, 256); + graphics.drawTexture(Inspecio.GUI_ICONS_TEXTURE, x + this.prot / 2 * 9, y, 25, 9, 9, 9, 256, 256); } } } diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/BannerTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/BannerTooltipComponent.java index 77646d8..35f9907 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/BannerTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/BannerTooltipComponent.java @@ -24,6 +24,7 @@ import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.item.TooltipData; import net.minecraft.client.model.ModelPart; @@ -31,7 +32,6 @@ import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.render.entity.model.EntityModelLayers; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.render.model.ModelLoader; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.nbt.NbtList; @@ -82,8 +82,9 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { DiffuseLighting.setupFlatGuiLighting(); + MatrixStack matrices = graphics.getMatrices(); matrices.push(); matrices.translate(x + 8, y + 8, 0); matrices.push(); diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/BeesTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/BeesTooltipComponent.java index b0059c6..3358ece 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/BeesTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/BeesTooltipComponent.java @@ -17,16 +17,14 @@ package io.github.queerbric.inspecio.tooltip; -import com.mojang.blaze3d.systems.RenderSystem; import io.github.queerbric.inspecio.Inspecio; import io.github.queerbric.inspecio.InspecioConfig; import net.minecraft.block.BeehiveBlock; import net.minecraft.block.entity.BeehiveBlockEntity; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.item.TooltipData; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; @@ -117,7 +115,8 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { + MatrixStack matrices = graphics.getMatrices(); matrices.push(); if (!this.bees.isEmpty()) { @@ -135,11 +134,10 @@ public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matri matrices.translate(x, y + (this.bees.isEmpty() ? 0 : (this.shouldRenderCustomNames() ? 32 : 24)), 0); matrices.scale(2, 2, 1); - RenderSystem.setShaderTexture(0, HONEY_LEVEL_TEXTURE); - DrawableHelper.drawTexture(matrices, 0, 0, 0, 0, 0, 26, 5, 32, 16); + graphics.drawTexture(HONEY_LEVEL_TEXTURE, 0, 0, 0, 0, 0, 26, 5, 32, 16); if (honeyLevel != 0) { - DrawableHelper.drawTexture(matrices, 0, 0, 0, 0, 5, Math.min(25, honeyLevel * 5 + 1), 6, 32, 16); + graphics.drawTexture(HONEY_LEVEL_TEXTURE, 0, 0, 0, 0, 5, Math.min(25, honeyLevel * 5 + 1), 6, 32, 16); } } diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/CampfireTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/CampfireTooltipComponent.java index ee2ae25..24a4bb8 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/CampfireTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/CampfireTooltipComponent.java @@ -21,11 +21,9 @@ import io.github.queerbric.inspecio.Inspecio; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.item.TooltipData; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; import net.minecraft.registry.Registries; @@ -94,16 +92,16 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int xOffset, int yOffset, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int xOffset, int yOffset, GuiGraphics graphics) { int x = 1 + 18 * 2; int y = 1 + 18 * 2; for (int i = 0; i < this.inventory.size(); i++) { var stack = this.inventory.get(i); - InventoryTooltipComponent.drawSlot(matrices, x + xOffset - 1, y + yOffset - 1, 0, null); - itemRenderer.method_4023(matrices, stack, xOffset + x, yOffset + y); - itemRenderer.method_4025(matrices, textRenderer, stack, xOffset + x, yOffset + y); + InventoryTooltipComponent.drawSlot(graphics, x + xOffset - 1, y + yOffset - 1, 0, null); + graphics.drawItem(stack, xOffset + x, yOffset + y); + graphics.drawItemInSlot(textRenderer, stack, xOffset + x, yOffset + y); if (i == 1) y -= 18 * 2; @@ -118,7 +116,7 @@ else if (i == 2) var sprite = MinecraftClient.getInstance().getSpriteAtlas(ATLAS_TEXTURE).apply(this.fireTexture); if (sprite != null) - DrawableHelper.drawSprite(matrices, xOffset + 19, yOffset + 19, 0, 16, 16, sprite); + graphics.drawSprite(xOffset + 19, yOffset + 19, 0, 16, 16, sprite); } } } diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/ChiseledBookshelfTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/ChiseledBookshelfTooltipComponent.java index d5822ae..5319309 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/ChiseledBookshelfTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/ChiseledBookshelfTooltipComponent.java @@ -25,11 +25,11 @@ import net.minecraft.block.ChiseledBookshelfBlock; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.item.TooltipData; import net.minecraft.client.render.LightmapTextureManager; import net.minecraft.client.render.OverlayTexture; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; @@ -97,8 +97,9 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { DiffuseLighting.setupInventoryEntityLighting(); + MatrixStack matrices = graphics.getMatrices(); matrices.translate(x, y, 0); matrices.scale(-1, -1, 1); matrices.translate(-20, -20, 0); diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/CompoundTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/CompoundTooltipComponent.java index 6bbd7d9..48329d5 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/CompoundTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/CompoundTooltipComponent.java @@ -19,6 +19,7 @@ import com.google.common.collect.Lists; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.render.VertexConsumerProvider.Immediate; import net.minecraft.client.render.item.ItemRenderer; @@ -61,10 +62,10 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { int yOff = 0; for (var comp : components) { - comp.drawItems(textRenderer, x, y + yOff, matrices, itemRenderer); + comp.drawItems(textRenderer, x, y + yOff, graphics); yOff += comp.getHeight(); } } diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/EntityBucketTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/EntityBucketTooltipComponent.java index 1ab4f9e..0829b1b 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/EntityBucketTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/EntityBucketTooltipComponent.java @@ -22,8 +22,8 @@ import io.github.queerbric.inspecio.mixin.EntityAccessor; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.item.TooltipData; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; @@ -62,8 +62,9 @@ public static Optional of(EntityType type, NbtCompound itemNbt) } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { if (this.shouldRender()) { + MatrixStack matrices = graphics.getMatrices(); matrices.push(); matrices.translate(2, 2, 0); ((EntityAccessor) this.entity).setTouchingWater(true); diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/FoodTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/FoodTooltipComponent.java index 1a26420..84c8040 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/FoodTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/FoodTooltipComponent.java @@ -21,11 +21,8 @@ import io.github.queerbric.inspecio.Inspecio; import io.github.queerbric.inspecio.SaturationTooltipMode; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.gui.hud.InGameHud; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.FoodComponent; import net.minecraft.util.math.MathHelper; import org.quiltmc.qsl.tooltip.api.ConvertibleTooltipData; @@ -65,10 +62,9 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { var foodConfig = Inspecio.getConfig().getFoodConfig(); - RenderSystem.setShaderTexture(0, InGameHud.GUI_ICONS_TEXTURE); int saturationY = y; if (foodConfig.getSaturationMode() == SaturationTooltipMode.SEPARATED && foodConfig.hasHunger()) { saturationY += 11 * this.getLines(this.getHungerChunks()); @@ -80,7 +76,7 @@ public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matri if (foodConfig.hasHunger()) { for (int i = 0; i < (this.hunger + 1) / 2; i++) { pos.wrap(i); - DrawableHelper.drawTexture(matrices, pos.x, pos.y, 16, 27, 9, 9, 256, 256); + graphics.drawTexture(Inspecio.GUI_ICONS_TEXTURE, pos.x, pos.y, 16, 27, 9, 9, 256, 256); pos.moveForward(); } } @@ -98,7 +94,7 @@ public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matri if (this.saturation - i < 1f) { width = Math.round(width * (saturation - i)); } - DrawableHelper.drawTexture(matrices, pos.x, pos.y, 25, 27, width, 9, 256, 256); + graphics.drawTexture(Inspecio.GUI_ICONS_TEXTURE, pos.x, pos.y, 25, 27, width, 9, 256, 256); pos.moveForward(); } @@ -111,13 +107,13 @@ public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matri for (int i = 0; i < this.hunger / 2; i++) { pos.wrap(i); - DrawableHelper.drawTexture(matrices, pos.x, pos.y, 52, 27, 9, 9, 256, 256); + graphics.drawTexture(Inspecio.GUI_ICONS_TEXTURE, pos.x, pos.y, 52, 27, 9, 9, 256, 256); pos.moveForward(); } if (this.hunger % 2 == 1) { pos.wrap(this.hunger / 2); - DrawableHelper.drawTexture(matrices, pos.x, pos.y, 61, 27, 9, 9, 256, 256); + graphics.drawTexture(Inspecio.GUI_ICONS_TEXTURE, pos.x, pos.y, 61, 27, 9, 9, 256, 256); } } @@ -133,13 +129,13 @@ public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matri for (int i = 0; i < intSaturation / 2; i++) { pos.wrap(i); - DrawableHelper.drawTexture(matrices, pos.x, pos.y, 52, 27, 9, 9, 256, 256); + graphics.drawTexture(Inspecio.GUI_ICONS_TEXTURE, pos.x, pos.y, 52, 27, 9, 9, 256, 256); pos.moveForward(); } if (intSaturation % 2 == 1) { pos.wrap(intSaturation / 2); - DrawableHelper.drawTexture(matrices, pos.x, pos.y, 61, 27, 9, 9, 256, 256); + graphics.drawTexture(Inspecio.GUI_ICONS_TEXTURE, pos.x, pos.y, 61, 27, 9, 9, 256, 256); } RenderSystem.setShaderColor(1.f, 1.f, 1.f, 1.f); diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/InventoryTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/InventoryTooltipComponent.java index 5c13ce9..a026a1a 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/InventoryTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/InventoryTooltipComponent.java @@ -20,14 +20,13 @@ import com.mojang.blaze3d.systems.RenderSystem; import io.github.queerbric.inspecio.api.InventoryProvider; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.item.TooltipData; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; import net.minecraft.util.DyeColor; +import net.minecraft.util.Identifier; import org.jetbrains.annotations.Nullable; import org.quiltmc.qsl.tooltip.api.ConvertibleTooltipData; @@ -43,6 +42,7 @@ * @since 1.0.0 */ public class InventoryTooltipComponent implements ConvertibleTooltipData, TooltipComponent { + private static final Identifier STATS_ICONS_TEXTURE = new Identifier("textures/gui/container/stats_icons.png"); private final List inventory; private final int columns; private final DyeColor color; @@ -107,15 +107,15 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int xOffset, int yOffset, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int xOffset, int yOffset, GuiGraphics graphics) { int x = 1; int y = 1; int lines = this.getColumns(); for (var stack : this.inventory) { - drawSlot(matrices, x + xOffset - 1, y + yOffset - 1, 0, this.color == null ? null : color.getColorComponents()); - itemRenderer.method_4023(matrices, stack, xOffset + x, yOffset + y); - itemRenderer.method_4025(matrices, textRenderer, stack, xOffset + x, yOffset + y); + drawSlot(graphics, x + xOffset - 1, y + yOffset - 1, 0, this.color == null ? null : color.getColorComponents()); + graphics.drawItem(stack, xOffset + x, yOffset + y); + graphics.drawItemInSlot(textRenderer, stack, xOffset + x, yOffset + y); x += 18; if (x >= 18 * lines) { x = 1; @@ -124,12 +124,11 @@ public void drawItems(TextRenderer textRenderer, int xOffset, int yOffset, Matri } } - public static void drawSlot(MatrixStack matrices, int x, int y, int z, float[] color) { + public static void drawSlot(GuiGraphics graphics, int x, int y, int z, float[] color) { if (color == null) color = new float[]{1.f, 1.f, 1.f}; RenderSystem.setShaderColor(color[0], color[1], color[2], 1.f); - RenderSystem.setShaderTexture(0, DrawableHelper.STATS_ICON_TEXTURE); - DrawableHelper.drawTexture(matrices, x, y, z, 0.f, 0.f, 18, 18, 128, 128); + graphics.drawTexture(STATS_ICONS_TEXTURE, x, y, z, 0.f, 0.f, 18, 18, 128, 128); RenderSystem.setShaderColor(1.f, 1.f, 1.f, 1.f); } diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/JukeboxTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/JukeboxTooltipComponent.java index 4953a25..24eeb66 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/JukeboxTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/JukeboxTooltipComponent.java @@ -21,11 +21,10 @@ import io.github.queerbric.inspecio.InspecioConfig; import io.github.queerbric.inspecio.JukeboxTooltipMode; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.item.TooltipData; import net.minecraft.client.render.LightmapTextureManager; import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; import net.minecraft.item.MusicDiscItem; @@ -76,12 +75,12 @@ public int getWidth(TextRenderer textRenderer) { @Override public void drawText(TextRenderer textRenderer, int x, int y, Matrix4f matrix4f, VertexConsumerProvider.Immediate immediate) { - textRenderer.computeVertices(this.disc.getDescription(), x, y, 11184810, true, matrix4f, immediate, TextRenderer.TextLayerType.NORMAL, 0, LightmapTextureManager.MAX_LIGHT_COORDINATE); + textRenderer.draw(this.disc.getDescription(), x, y, 11184810, true, matrix4f, immediate, TextRenderer.TextLayerType.NORMAL, 0, LightmapTextureManager.MAX_LIGHT_COORDINATE); } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { if (this.config.getJukeboxTooltipMode() == JukeboxTooltipMode.FANCY) - super.drawItems(textRenderer, x, y + 10, matrices, itemRenderer); + super.drawItems(textRenderer, x, y + 10, graphics); } } diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/MapTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/MapTooltipComponent.java index 88242cc..fe65a2e 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/MapTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/MapTooltipComponent.java @@ -20,10 +20,10 @@ import io.github.queerbric.inspecio.Inspecio; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.item.TooltipData; import net.minecraft.client.render.LightmapTextureManager; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.FilledMapItem; import net.minecraft.item.ItemStack; @@ -61,11 +61,12 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { var vertices = this.client.getBufferBuilders().getEntityVertexConsumers(); var map = this.client.gameRenderer.getMapRenderer(); var state = FilledMapItem.getMapState(this.map, this.client.world); if (state == null) return; + MatrixStack matrices = graphics.getMatrices(); matrices.push(); matrices.translate(x, y, 0); matrices.scale(1, 1, 0); diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/PaintingTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/PaintingTooltipComponent.java index ab5332e..e4bb610 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/PaintingTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/PaintingTooltipComponent.java @@ -17,18 +17,15 @@ package io.github.queerbric.inspecio.tooltip; -import com.mojang.blaze3d.systems.RenderSystem; import io.github.queerbric.inspecio.Inspecio; import io.github.queerbric.inspecio.mixin.DecorationItemAccessor; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.item.TooltipData; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.texture.PaintingManager; import net.minecraft.client.texture.Sprite; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.EntityType; import net.minecraft.entity.decoration.painting.PaintingEntity; import net.minecraft.entity.decoration.painting.PaintingVariant; @@ -88,10 +85,9 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { PaintingManager paintingManager = MinecraftClient.getInstance().getPaintingManager(); Sprite sprite = paintingManager.getPaintingSprite(this.painting); - RenderSystem.setShaderTexture(0, paintingManager.getBackSprite().getId()); - DrawableHelper.drawSprite(matrices, x, y - 2, 0, this.getWidth(textRenderer), this.getHeight(), sprite); + graphics.drawSprite(x, y - 2, 0, this.getWidth(textRenderer), this.getHeight(), sprite); } } diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/SignTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/SignTooltipComponent.java index 5b14c05..e65f4e9 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/SignTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/SignTooltipComponent.java @@ -23,9 +23,11 @@ import io.github.queerbric.inspecio.Inspecio; import io.github.queerbric.inspecio.SignTooltipMode; import net.minecraft.block.AbstractSignBlock; +import net.minecraft.block.entity.SignText; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.item.TooltipData; import net.minecraft.client.model.Model; @@ -35,41 +37,39 @@ import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.HangingSignBlockEntityRenderer; import net.minecraft.client.render.block.entity.SignBlockEntityRenderer; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.util.SpriteIdentifier; +import net.minecraft.client.resource.Material; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.BlockItem; import net.minecraft.item.HangingSignItem; import net.minecraft.item.ItemStack; import net.minecraft.item.SignItem; import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtOps; import net.minecraft.text.OrderedText; import net.minecraft.text.Text; import net.minecraft.util.DyeColor; import net.minecraft.util.Identifier; import net.minecraft.util.SignType; +import net.minecraft.util.math.Axis; import org.joml.Matrix4f; import org.quiltmc.qsl.tooltip.api.ConvertibleTooltipData; import java.util.Arrays; import java.util.Comparator; -import java.util.Objects; import java.util.Optional; public abstract class SignTooltipComponent implements ConvertibleTooltipData, TooltipComponent { protected static final MinecraftClient CLIENT = MinecraftClient.getInstance(); private final SignTooltipMode tooltipMode = Inspecio.getConfig().getSignTooltipMode(); protected final SignType type; - private final OrderedText[] text; - private final DyeColor color; - private final boolean glowingText; + private final SignText front; + private final SignText back; protected final M model; - public SignTooltipComponent(SignType type, OrderedText[] text, DyeColor color, boolean glowingText, M model) { + public SignTooltipComponent(SignType type, SignText front, SignText back, M model) { this.type = type; - this.text = text; - this.color = color; - this.glowingText = glowingText; + this.front = front; + this.back = back; this.model = model; } @@ -77,36 +77,53 @@ public static Optional fromItemStack(ItemStack stack) { if (!Inspecio.getConfig().getSignTooltipMode().isEnabled()) return Optional.empty(); - if (stack.getItem() instanceof SignItem signItem) { + if (stack.getItem() instanceof HangingSignItem signItem) { var block = signItem.getBlock(); var nbt = BlockItem.getBlockEntityNbtFromStack(stack); - if (nbt != null) return Optional.of(fromTag(AbstractSignBlock.getSignType(block), nbt, false)); - } else if (stack.getItem() instanceof HangingSignItem signItem) { + if (nbt != null) return Optional.ofNullable(fromTag(AbstractSignBlock.getSignType(block), nbt, true)); + } else if (stack.getItem() instanceof SignItem signItem) { var block = signItem.getBlock(); var nbt = BlockItem.getBlockEntityNbtFromStack(stack); - if (nbt != null) return Optional.of(fromTag(AbstractSignBlock.getSignType(block), nbt, true)); + if (nbt != null) return Optional.ofNullable(fromTag(AbstractSignBlock.getSignType(block), nbt, false)); } return Optional.empty(); } public static SignTooltipComponent fromTag(SignType type, NbtCompound nbt, boolean hanging) { - var color = DyeColor.byName(nbt.getString("Color"), DyeColor.BLACK); - - var lines = new OrderedText[4]; - for (int i = 0; i < 4; ++i) { - var serialized = nbt.getString("Text" + (i + 1)); - var text = Objects.requireNonNull(Text.Serializer.fromJson(serialized.isEmpty() ? "\"\"" : serialized)) - .asOrderedText(); - lines[i] = text; + Optional front = Optional.empty(); + Optional back = Optional.empty(); + + if (nbt.contains("front_text")) { + front = SignText.CODEC + .parse(NbtOps.INSTANCE, nbt.getCompound("front_text")) + .resultOrPartial(s -> {}) + .map(SignTooltipComponent::parseLines); } - boolean glowingText = nbt.getBoolean("GlowingText"); + if (nbt.contains("back_text")) { + back = SignText.CODEC + .parse(NbtOps.INSTANCE, nbt.getCompound("back_text")) + .resultOrPartial(s -> {}) + .map(SignTooltipComponent::parseLines); + } - if (hanging) { - return new HangingSign(type, lines, color, glowingText); + if (front.isEmpty() && back.isEmpty()) { + return null; + } else if (hanging) { + return new HangingSign(type, front.orElse(null), back.orElse(null)); } else { - return new Sign(type, lines, color, glowingText); + return new Sign(type, front.orElse(null), back.orElse(null)); + } + } + + private static SignText parseLines(SignText text) { + for (int line = 0; line < 4; line++) { + Text unfilteredMessage = text.getMessage(line, false); + Text filteredMessage = text.getMessage(line, true); + text = text.withMessage(line, unfilteredMessage, filteredMessage); } + + return text; } @Override @@ -114,11 +131,28 @@ public TooltipComponent toComponent() { return this; } + protected boolean shouldShowBack() { + return this.front == null || (this.back != null && Screen.hasControlDown()); + } + + private SignText getText() { + if (this.shouldShowBack()) return this.back; + else return this.front; + } + + private Text[] getMessages() { + return this.getText().getMessages(MinecraftClient.getInstance().shouldFilterText()); + } + + private OrderedText[] getOrderedMessages() { + return this.getText().getOrderedMessages(MinecraftClient.getInstance().shouldFilterText(), Text::asOrderedText); + } + @Override public int getHeight() { if (this.tooltipMode == SignTooltipMode.FANCY) return this.getFancyHeight(); - return this.text.length * 10; + return this.getMessages().length * 10; } protected abstract int getFancyHeight(); @@ -127,7 +161,7 @@ public int getHeight() { public int getWidth(TextRenderer textRenderer) { if (this.tooltipMode == SignTooltipMode.FANCY) return this.getFancyWidth(); - return Arrays.stream(this.text).map(textRenderer::getWidth).max(Comparator.naturalOrder()).orElse(94); + return Arrays.stream(this.getMessages()).map(textRenderer::getWidth).max(Comparator.naturalOrder()).orElse(94); } protected abstract int getFancyWidth(); @@ -141,11 +175,12 @@ public void drawText(TextRenderer textRenderer, int x, int y, Matrix4f matrix4f, } public void drawTextAt(TextRenderer textRenderer, int x, int y, Matrix4f matrix4f, VertexConsumerProvider.Immediate immediate, boolean center) { - int signColor = this.color.getSignColor(); + int signColor = this.getText().getColor().getSignColor(); + var messages = this.getOrderedMessages(); - if (glowingText) { + if (this.getText().hasGlowingText()) { int outlineColor; - if (this.color == DyeColor.BLACK) { + if (this.getText().getColor() == DyeColor.BLACK) { outlineColor = -988212; } else { int r = (int) (((signColor >> 24) & 255) * 0.4); @@ -155,18 +190,22 @@ public void drawTextAt(TextRenderer textRenderer, int x, int y, Matrix4f matrix4 outlineColor = (b >> 8) | (g >> 16) | (r >> 24); } - for (int i = 0; i < this.text.length; i++) { - var text = this.text[i]; + for (int i = 0; i < messages.length; i++) { + var text = messages[i]; float textX = center ? (45 - textRenderer.getWidth(text) / 2.f) : x; textRenderer.drawWithOutline(text, textX, y + i * 10, signColor, outlineColor, matrix4f, immediate, LightmapTextureManager.MAX_LIGHT_COORDINATE ); } } else { - for (int i = 0; i < this.text.length; i++) { - var text = this.text[i]; + if (!center && this.getText().getColor() == DyeColor.BLACK) { + signColor = 0xffffffff; + } + + for (int i = 0; i < messages.length; i++) { + var text = messages[i]; float textX = center ? (45 - textRenderer.getWidth(text) / 2.f) : x; - textRenderer.computeVertices( + textRenderer.draw( text, textX, y + i * 10, signColor, false, matrix4f, immediate, TextRenderer.TextLayerType.NORMAL, 0, LightmapTextureManager.MAX_LIGHT_COORDINATE ); @@ -175,11 +214,12 @@ public void drawTextAt(TextRenderer textRenderer, int x, int y, Matrix4f matrix4 } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { if (this.tooltipMode != SignTooltipMode.FANCY) return; DiffuseLighting.setupFlatGuiLighting(); + MatrixStack matrices = graphics.getMatrices(); matrices.push(); matrices.translate(x + 2, y, 0); @@ -187,24 +227,27 @@ public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matri var immediate = CLIENT.getBufferBuilders().getEntityVertexConsumers(); var spriteIdentifier = this.getSignTextureId(); var vertexConsumer = spriteIdentifier != null ? spriteIdentifier.getVertexConsumer(immediate, this.model::getLayer) : null; - this.renderModel(matrices, vertexConsumer); + this.renderModel(graphics, vertexConsumer); immediate.draw(); matrices.pop(); matrices.translate(0, this.getTextOffset(), 10); - for (int i = 0; i < this.text.length; i++) { - var text = this.text[i]; - textRenderer.draw(matrices, text, 45 - textRenderer.getWidth(text) / 2.f, i * 10, this.color.getSignColor()); + var messages = this.getOrderedMessages(); + for (int i = 0; i < messages.length; i++) { + var text = messages[i]; + graphics.drawText(textRenderer, text, (int) (45 - textRenderer.getWidth(text) / 2.f), i * 10, + this.getText().getColor().getSignColor(), false + ); } matrices.pop(); DiffuseLighting.setup3DGuiLighting(); } - public abstract SpriteIdentifier getSignTextureId(); + public abstract Material getSignTextureId(); - public abstract void renderModel(MatrixStack matrices, VertexConsumer vertexConsumer); + public abstract void renderModel(GuiGraphics graphics, VertexConsumer vertexConsumer); /** * {@return the vertical offset between the start of the component and where the text lines should be drawn} @@ -213,10 +256,8 @@ public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matri public static class Sign extends SignTooltipComponent { - public Sign(SignType type, OrderedText[] text, DyeColor color, boolean glowingText) { - super(type, text, color, glowingText, - SignBlockEntityRenderer.createSignModel(CLIENT.getEntityModelLoader(), type) - ); + public Sign(SignType type, SignText front, SignText back) { + super(type, front, back, SignBlockEntityRenderer.createSignModel(CLIENT.getEntityModelLoader(), type)); } @Override @@ -230,17 +271,22 @@ protected int getFancyWidth() { } @Override - public SpriteIdentifier getSignTextureId() { + public Material getSignTextureId() { return TexturedRenderLayers.getSignTextureId(this.type); } @Override - public void renderModel(MatrixStack matrices, VertexConsumer vertexConsumer) { - matrices.translate(45, 56, 0); - matrices.scale(65, 65, -65); + public void renderModel(GuiGraphics graphics, VertexConsumer vertexConsumer) { + graphics.getMatrices().translate(45, 56, 0); + + if (this.shouldShowBack()) { + graphics.getMatrices().multiply(Axis.Y_POSITIVE.rotationDegrees(180)); + } + + graphics.getMatrices().scale(65, 65, -65); this.model.stick.visible = false; this.model.root.visible = true; - this.model.root.render(matrices, vertexConsumer, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV); + this.model.root.render(graphics.getMatrices(), vertexConsumer, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV); } @Override @@ -252,8 +298,8 @@ protected int getTextOffset() { public static class HangingSign extends SignTooltipComponent { private final Identifier textureId = new Identifier("textures/gui/hanging_signs/" + this.type.getName() + ".png"); - public HangingSign(SignType type, OrderedText[] text, DyeColor color, boolean glowingText) { - super(type, text, color, glowingText, null); + public HangingSign(SignType type, SignText front, SignText back) { + super(type, front, back, null); } @Override @@ -267,17 +313,16 @@ protected int getFancyWidth() { } @Override - public SpriteIdentifier getSignTextureId() { + public Material getSignTextureId() { return null; } @Override - public void renderModel(MatrixStack matrices, VertexConsumer vertexConsumer) { - matrices.translate(44.5, 32, 0); - RenderSystem.setShaderTexture(0, this.textureId); + public void renderModel(GuiGraphics graphics, VertexConsumer vertexConsumer) { + graphics.getMatrices().translate(44.5, 32, 0); RenderSystem.setShaderColor(1.f, 1.f, 1.f, 1.f); - matrices.scale(4.f, 4.f, 1.f); - DrawableHelper.drawTexture(matrices, -8, -8, 0.f, 0.f, 16, 16, 16, 16); + graphics.getMatrices().scale(4.f, 4.f, 1.f); + graphics.drawTexture(this.textureId, -8, -8, 0.f, 0.f, 16, 16, 16, 16); } @Override diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/SpawnEntityTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/SpawnEntityTooltipComponent.java index 71ceebf..daec6e2 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/SpawnEntityTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/SpawnEntityTooltipComponent.java @@ -22,9 +22,9 @@ import io.github.queerbric.inspecio.mixin.EntityAccessor; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.item.TooltipData; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; @@ -131,8 +131,9 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { if (this.shouldRender()) { + MatrixStack matrices = graphics.getMatrices(); matrices.push(); matrices.translate(30, 0, 0); ((EntityAccessor) this.entity).setTouchingWater(true); diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/StatusEffectTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/StatusEffectTooltipComponent.java index c8e03f2..8bb46b7 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/StatusEffectTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/StatusEffectTooltipComponent.java @@ -18,7 +18,6 @@ package io.github.queerbric.inspecio.tooltip; import com.google.common.collect.Lists; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.datafixers.util.Pair; import io.github.queerbric.inspecio.HiddenEffectMode; import io.github.queerbric.inspecio.Inspecio; @@ -26,14 +25,12 @@ import it.unimi.dsi.fastutil.floats.FloatList; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.render.LightmapTextureManager; import net.minecraft.client.render.VertexConsumerProvider.Immediate; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.resource.language.I18n; import net.minecraft.client.texture.StatusEffectSpriteManager; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffectUtil; @@ -129,10 +126,9 @@ public int getWidth(TextRenderer textRenderer) { } @Override - public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matrices, ItemRenderer itemRenderer) { + public void drawItems(TextRenderer textRenderer, int x, int y, GuiGraphics graphics) { if (this.hidden) { - RenderSystem.setShaderTexture(0, MYSTERY_TEXTURE); - DrawableHelper.drawTexture(matrices, x, y, 0, 0, 18, 18, 18, 18); + graphics.drawTexture(MYSTERY_TEXTURE, x, y, 0, 0, 18, 18, 18, 18); } else { MinecraftClient client = MinecraftClient.getInstance(); StatusEffectSpriteManager statusEffectSpriteManager = client.getStatusEffectSpriteManager(); @@ -140,8 +136,7 @@ public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matri StatusEffectInstance statusEffectInstance = list.get(i); StatusEffect statusEffect = statusEffectInstance.getEffectType(); var sprite = statusEffectSpriteManager.getSprite(statusEffect); - RenderSystem.setShaderTexture(0, sprite.getId()); - DrawableHelper.drawSprite(matrices, x, y + i * 20, 0, 18, 18, sprite); + graphics.drawSprite(x, y + i * 20, 0, 18, 18, sprite); } } } @@ -149,9 +144,9 @@ public void drawItems(TextRenderer textRenderer, int x, int y, MatrixStack matri @Override public void drawText(TextRenderer textRenderer, int x, int y, Matrix4f model, Immediate immediate) { if (this.hidden) { - textRenderer.computeVertices(this.getHiddenText(), x + 24, y, 8355711, true, + textRenderer.draw(this.getHiddenText(), x + 24, y, 8355711, true, model, immediate, TextRenderer.TextLayerType.NORMAL, 0, LightmapTextureManager.MAX_LIGHT_COORDINATE); - textRenderer.computeVertices(this.getHiddenTime(), x + 24, y + 10, 8355711, true, + textRenderer.draw(this.getHiddenTime(), x + 24, y + 10, 8355711, true, model, immediate, TextRenderer.TextLayerType.NORMAL, 0, LightmapTextureManager.MAX_LIGHT_COORDINATE); } else { for (int i = 0; i < this.list.size(); i++) { @@ -164,15 +159,15 @@ public void drawText(TextRenderer textRenderer, int x, int y, Matrix4f model, Im } Integer color = statusEffectInstance.getEffectType().getType().getFormatting().getColorValue(); - textRenderer.computeVertices(statusEffectName, x + 24, y + i * 20 + off, color != null ? color : 16777215, + textRenderer.draw(statusEffectName, x + 24, y + i * 20 + off, color != null ? color : 16777215, true, model, immediate, TextRenderer.TextLayerType.NORMAL, 0, LightmapTextureManager.MAX_LIGHT_COORDINATE); if (statusEffectInstance.getDuration() > 1) { var duration = this.getDuration(i, statusEffectInstance); - textRenderer.computeVertices(duration, x + 24, y + i * 20 + 10, 8355711, true, + textRenderer.draw(duration, x + 24, y + i * 20 + 10, 8355711, true, model, immediate, TextRenderer.TextLayerType.NORMAL, 0, LightmapTextureManager.MAX_LIGHT_COORDINATE); } else if (this.chances.size() > i && this.chances.getFloat(i) < 1f) { String chance = (int) (this.chances.getFloat(i) * 100f) + "%"; - textRenderer.computeVertices(chance, x + 24, y + i * 20 + 10, 8355711, true, + textRenderer.draw(chance, x + 24, y + i * 20 + 10, 8355711, true, model, immediate, TextRenderer.TextLayerType.NORMAL, 0, LightmapTextureManager.MAX_LIGHT_COORDINATE); } } diff --git a/src/main/resources/quilt.mod.json b/src/main/resources/quilt.mod.json index e77b5e5..27ebb07 100644 --- a/src/main/resources/quilt.mod.json +++ b/src/main/resources/quilt.mod.json @@ -31,7 +31,7 @@ "depends": [ { "id": "minecraft", - "versions": "~1.19.4" + "versions": "~1.20" }, { "id": "quilt_loader",