From 1c190fe5c4bdf65dad6db690c4670e651a216a37 Mon Sep 17 00:00:00 2001 From: Kam Date: Fri, 21 Feb 2025 19:37:57 -0500 Subject: [PATCH] Fix Some Rendering --- .../player/inventory/GuiCNPCInventory.java | 17 +++++++------- .../npcs/client/gui/util/GuiEffectBar.java | 23 +++++++++++++------ 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/player/inventory/GuiCNPCInventory.java b/src/main/java/noppes/npcs/client/gui/player/inventory/GuiCNPCInventory.java index 7e5480712..4783e7cff 100644 --- a/src/main/java/noppes/npcs/client/gui/player/inventory/GuiCNPCInventory.java +++ b/src/main/java/noppes/npcs/client/gui/player/inventory/GuiCNPCInventory.java @@ -81,9 +81,9 @@ public class GuiCNPCInventory extends GuiNPCInterface { clientButton.renderResource = specialIcons; addSideButton(clientButton); - int effectBarX = guiLeft + xSize + 65; + int effectBarX = guiLeft - 40; int effectBarY = guiTop + 10; - int effectBarWidth = 20; + int effectBarWidth = 28; int effectBarHeight = ySize; effectBar = new GuiEffectBar(effectBarX, effectBarY, effectBarWidth, effectBarHeight); } @@ -108,23 +108,24 @@ public class GuiCNPCInventory extends GuiNPCInterface { updateEffectBar(); super.drawScreen(mouseX, mouseY, partialTicks); if (!ConfigClient.HideEffectsBar && effectBar != null && !effectBar.entries.isEmpty()) { - effectBar.drawScreen(mouseX, mouseY, partialTicks); + if(activeTab != -100) + effectBar.drawScreen(mouseX, mouseY, partialTicks); } } @Override public void handleMouseInput() { - super.handleMouseInput(); int delta = Mouse.getDWheel(); if (delta != 0 && effectBar != null) { - int mouseX = Mouse.getX() * width / mc.displayWidth; - int mouseY = height - Mouse.getY() * height / mc.displayHeight - 1; - // Only scroll the effect bar if the mouse is over its area. + int mouseX = Mouse.getX() * this.width / mc.displayWidth; + int mouseY = this.height - Mouse.getY() * this.height / mc.displayHeight - 1; if (mouseX >= effectBar.x && mouseX < effectBar.x + effectBar.width && mouseY >= effectBar.y && mouseY < effectBar.y + effectBar.height) { - effectBar.mouseScrolled(delta > 0 ? 1 : -1); + // Use delta/120 to convert the typical scroll wheel values to ±1 + effectBar.mouseScrolled(delta / 120); } } + super.handleMouseInput(); } diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiEffectBar.java b/src/main/java/noppes/npcs/client/gui/util/GuiEffectBar.java index 938265149..7aa4119a2 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiEffectBar.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiEffectBar.java @@ -4,6 +4,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.util.ResourceLocation; import noppes.npcs.client.ClientCacheHandler; import noppes.npcs.client.renderer.ImageData; @@ -19,7 +20,7 @@ import static noppes.npcs.client.gui.player.inventory.GuiCNPCInventory.specialIc public class GuiEffectBar extends GuiScreen { public int x, y, width, height; public int scrollY = 0; // Tracks vertical scrolling - public int entryHeight = 20; // Height for each effect slot + public int entryHeight = 28; // Height for each effect slot public List entries = new ArrayList<>(); public FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; @@ -55,8 +56,10 @@ public class GuiEffectBar extends GuiScreen { int scissorH = height * scaleFactor; GL11.glScissor(scissorX, scissorY, scissorW, scissorH); - int iconRenderSize = 16; + int iconRenderSize = 24; int padding = 1; + // Calculate vertical offset to center the icon in the slot + int iconYOffset = (entryHeight - iconRenderSize) / 2; int startIndex = scrollY / (entryHeight + padding); int endIndex = Math.min(entries.size(), startIndex + height / (entryHeight + padding) + 1); @@ -79,15 +82,16 @@ public class GuiEffectBar extends GuiScreen { int iconHeight = entry.effect.getHeight(); int texWidth = imageData.getTotalWidth(); - func_152125_a(x + 2, drawY + 2, iconU, iconV, iconWidth, iconHeight, iconRenderSize, iconRenderSize, texWidth, texWidth); + // Use iconYOffset to vertically center the icon + func_152125_a(x + 2, drawY + iconYOffset, iconU, iconV, iconWidth, iconHeight, iconRenderSize, iconRenderSize, texWidth, texWidth); GL11.glDisable(GL11.GL_DEPTH_TEST); - minecraft.getTextureManager().bindTexture(specialIcons); - func_152125_a(x + 2, drawY + 2, 0, 224, 16, 16, iconRenderSize, iconRenderSize, 256, 256); + Minecraft.getMinecraft().getTextureManager().bindTexture(specialIcons); + func_152125_a(x + 2, drawY + iconYOffset, 0, 224, 16, 16, iconRenderSize, iconRenderSize, 256, 256); GL11.glEnable(GL11.GL_DEPTH_TEST); } - // If mouse hovers over this effect, save tooltip info + // Mouse hover logic remains unchanged if (mouseX >= x && mouseX < x + width && mouseY >= drawY && mouseY < drawY + entryHeight) { int seconds = entry.playerEffect.duration; @@ -126,7 +130,8 @@ public class GuiEffectBar extends GuiScreen { * Adjusted scrolling to move up and down instead of left and right. */ public void mouseScrolled(int delta) { - int totalHeight = entries.size() * entryHeight; + int padding = 1; + int totalHeight = entries.size() * (entryHeight + padding); scrollY -= delta * 10; // Adjust scroll speed as needed. if (scrollY < 0) scrollY = 0; if (scrollY > totalHeight - height) scrollY = Math.max(totalHeight - height, 0); @@ -155,6 +160,7 @@ public class GuiEffectBar extends GuiScreen { int screenWidth = Minecraft.getMinecraft().currentScreen.width; int screenHeight = Minecraft.getMinecraft().currentScreen.height; + TextureManager textureManager = Minecraft.getMinecraft().getTextureManager(); int tooltipX = x + 12; int tooltipY = y - 12; @@ -188,7 +194,10 @@ public class GuiEffectBar extends GuiScreen { func_152125_a(tooltipX + (maxWidth - iconSize) / 2, textY + 4, hoveredEffect.iconX, hoveredEffect.iconY, hoveredEffect.getWidth(), hoveredEffect.getHeight(), iconSize, iconSize, imageData.getTotalWidth(), imageData.getTotalWidth()); } + textureManager.bindTexture(specialIcons); + func_152125_a(tooltipX + (maxWidth - iconSize) / 2, textY + 4, 0, 224, 16, 16, iconSize, iconSize, 256, 256); GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glPopMatrix(); GL11.glPopAttrib(); }