Skip to content

Commit

Permalink
Port to Minecraft 1.20.
Browse files Browse the repository at this point in the history
  • Loading branch information
LambdAurora committed Jun 9, 2023
1 parent 2b22226 commit 84cf99c
Show file tree
Hide file tree
Showing 20 changed files with 181 additions and 151 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -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
Expand Down
1 change: 1 addition & 0 deletions src/main/java/io/github/queerbric/inspecio/Inspecio.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -67,8 +67,9 @@ public static Optional<TooltipData> 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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@
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;
import net.minecraft.client.render.LightmapTextureManager;
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;
Expand Down Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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()) {
Expand All @@ -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);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -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);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -62,8 +62,9 @@ public static Optional<TooltipData> 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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
Expand All @@ -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();
}
}
Expand All @@ -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();
}
Expand All @@ -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);
}
}

Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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<ItemStack> inventory;
private final int columns;
private final DyeColor color;
Expand Down Expand Up @@ -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;
Expand All @@ -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);
}

Expand Down
Loading

0 comments on commit 84cf99c

Please sign in to comment.