diff --git a/src/main/java/appeng/client/gui/AEBaseGui.java b/src/main/java/appeng/client/gui/AEBaseGui.java index 35fdcfe80..02abda60a 100644 --- a/src/main/java/appeng/client/gui/AEBaseGui.java +++ b/src/main/java/appeng/client/gui/AEBaseGui.java @@ -718,17 +718,11 @@ public abstract class AEBaseGui extends ContainerScre try { - // FIXME Probably not required this.zLevel = 100.0F; - this.itemRenderer.zLevel = 100.0F; - if( !this.isPowered() ) { fill( s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111 ); } - // FIXME Probably not required this.zLevel = 0.0F; - this.itemRenderer.zLevel = 0.0F; - // Annoying but easier than trying to splice into render item super.drawSlot( new Size1Slot( (SlotME) s ) ); diff --git a/src/main/java/appeng/client/render/StackSizeRenderer.java b/src/main/java/appeng/client/render/StackSizeRenderer.java index 94a2ff648..4c0c303cf 100644 --- a/src/main/java/appeng/client/render/StackSizeRenderer.java +++ b/src/main/java/appeng/client/render/StackSizeRenderer.java @@ -20,6 +20,7 @@ package appeng.client.render; import com.mojang.blaze3d.systems.RenderSystem; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import appeng.api.storage.data.IAEItemStack; @@ -28,6 +29,7 @@ import appeng.core.localization.GuiText; import appeng.util.ISlimReadableNumberConverter; import appeng.util.IWideReadableNumberConverter; import appeng.util.ReadableNumberConverter; +import net.minecraft.client.renderer.*; /** @@ -45,45 +47,46 @@ public class StackSizeRenderer { if( aeStack != null ) { - final float scaleFactor = AEConfig.instance().useTerminalUseLargeFont() ? 0.85f : 0.5f; - final float inverseScaleFactor = 1.0f / scaleFactor; - final int offset = AEConfig.instance().useTerminalUseLargeFont() ? 0 : -1; - if( aeStack.getStackSize() == 0 && aeStack.isCraftable() ) { final String craftLabelText = AEConfig.instance().useTerminalUseLargeFont() ? GuiText.LargeFontCraft.getLocal() : GuiText.SmallFontCraft .getLocal(); - RenderSystem.disableDepthTest(); - RenderSystem.disableBlend(); - RenderSystem.pushMatrix(); - RenderSystem.scalef( scaleFactor, scaleFactor, scaleFactor ); - final int X = (int) ( ( (float) xPos + offset + 16.0f - fontRenderer.getStringWidth( craftLabelText ) * scaleFactor ) * inverseScaleFactor ); - final int Y = (int) ( ( (float) yPos + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); - fontRenderer.drawStringWithShadow( craftLabelText, X, Y, 16777215 ); - RenderSystem.popMatrix(); - RenderSystem.enableDepthTest(); - RenderSystem.enableBlend(); + + renderSizeLabel(fontRenderer, xPos, yPos, craftLabelText); } if( aeStack.getStackSize() > 0 ) { final String stackSize = this.getToBeRenderedStackSize( aeStack.getStackSize() ); - RenderSystem.disableDepthTest(); - RenderSystem.disableBlend(); - RenderSystem.pushMatrix(); - RenderSystem.scalef( scaleFactor, scaleFactor, scaleFactor ); - final int X = (int) ( ( (float) xPos + offset + 16.0f - fontRenderer.getStringWidth( stackSize ) * scaleFactor ) * inverseScaleFactor ); - final int Y = (int) ( ( (float) yPos + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); - fontRenderer.drawStringWithShadow( stackSize, X, Y, 16777215 ); - RenderSystem.popMatrix(); - RenderSystem.enableDepthTest(); - RenderSystem.enableBlend(); + renderSizeLabel(fontRenderer, xPos, yPos, stackSize); } } } + public static void renderSizeLabel(FontRenderer fontRenderer, float xPos, float yPos, String text) { + + final float scaleFactor = AEConfig.instance().useTerminalUseLargeFont() ? 0.85f : 0.5f; + final float inverseScaleFactor = 1.0f / scaleFactor; + final int offset = AEConfig.instance().useTerminalUseLargeFont() ? 0 : -1; + + TransformationMatrix tm = new TransformationMatrix( + new Vector3f(0, 0, 300), // Taken from ItemRenderer.renderItemOverlayIntoGUI + null, + new Vector3f(scaleFactor, scaleFactor, scaleFactor), + null + ); + + RenderSystem.disableBlend(); + final int X = (int) ( ( xPos + offset + 16.0f - fontRenderer.getStringWidth(text) * scaleFactor ) * inverseScaleFactor ); + final int Y = (int) ( ( yPos + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); + IRenderTypeBuffer.Impl buffer = IRenderTypeBuffer.getImpl(Tessellator.getInstance().getBuffer()); + fontRenderer.renderString(text, X, Y, 16777215, true, tm.getMatrix(), buffer, false, 0, 15728880 ); + buffer.finish(); + RenderSystem.enableBlend(); + } + private String getToBeRenderedStackSize( final long originalSize ) { if( AEConfig.instance().useTerminalUseLargeFont() ) diff --git a/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java b/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java index f63b38966..35ade69f1 100644 --- a/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java +++ b/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java @@ -23,6 +23,7 @@ import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; +import appeng.client.render.StackSizeRenderer; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gui.FontRenderer; @@ -50,27 +51,9 @@ public class FluidStackSizeRenderer public void renderStackSize( FontRenderer fontRenderer, IAEFluidStack aeStack, int xPos, int yPos ) { - if( aeStack != null ) - { - final float scaleFactor = AEConfig.instance().useTerminalUseLargeFont() ? 0.85f : 0.5f; - final float inverseScaleFactor = 1.0f / scaleFactor; - final int offset = AEConfig.instance().useTerminalUseLargeFont() ? 0 : -1; - - if( aeStack.getStackSize() > 0 ) - { - final String stackSize = this.getToBeRenderedStackSize( aeStack.getStackSize() ); - - RenderSystem.disableDepthTest(); - RenderSystem.disableBlend(); - RenderSystem.pushMatrix(); - RenderSystem.scalef( scaleFactor, scaleFactor, scaleFactor ); - final int X = (int) ( ( (float) xPos + offset + 16.0f - fontRenderer.getStringWidth( stackSize ) * scaleFactor ) * inverseScaleFactor ); - final int Y = (int) ( ( (float) yPos + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); - fontRenderer.drawStringWithShadow( stackSize, X, Y, 16777215 ); - RenderSystem.popMatrix(); - RenderSystem.enableDepthTest(); - RenderSystem.enableBlend(); - } + if (aeStack != null && aeStack.getStackSize() > 0) { + final String stackSize = this.getToBeRenderedStackSize(aeStack.getStackSize()); + StackSizeRenderer.renderSizeLabel(fontRenderer, xPos, yPos, stackSize); } }