2727import net .minecraftforge .fml .relauncher .SideOnly ;
2828
2929import codechicken .lib .vec .Matrix4 ;
30- import com .cleanroommc .modularui .api .MCHelper ;
3130import com .cleanroommc .modularui .api .widget .IWidget ;
3231import com .cleanroommc .modularui .drawable .GuiDraw ;
3332import com .cleanroommc .modularui .integration .jei .JeiGhostIngredientSlot ;
3635import com .cleanroommc .modularui .utils .Color ;
3736import org .jetbrains .annotations .NotNull ;
3837import org .jetbrains .annotations .Nullable ;
38+ import org .lwjgl .opengl .EXTFramebufferObject ;
3939import org .lwjgl .opengl .GL11 ;
4040import org .lwjgl .opengl .GL30 ;
4141
@@ -169,7 +169,7 @@ public static void useStencil(Runnable mask, Runnable renderInMask, boolean shou
169169 public static void useLightMap (float x , float y , Runnable codeBlock ) {
170170 /* hack the lightmap */
171171 GL11 .glPushAttrib (GL11 .GL_LIGHTING_BIT );
172- net . minecraft . client . renderer . RenderHelper .disableStandardItemLighting ();
172+ RenderHelper .disableStandardItemLighting ();
173173 float lastBrightnessX = OpenGlHelper .lastBrightnessX ;
174174 float lastBrightnessY = OpenGlHelper .lastBrightnessY ;
175175 OpenGlHelper .setLightmapTextureCoords (OpenGlHelper .lightmapTexUnit , x , y );
@@ -178,7 +178,7 @@ public static void useLightMap(float x, float y, Runnable codeBlock) {
178178 }
179179 /* restore the lightmap */
180180 OpenGlHelper .setLightmapTextureCoords (OpenGlHelper .lightmapTexUnit , lastBrightnessX , lastBrightnessY );
181- net . minecraft . client . renderer . RenderHelper .enableStandardItemLighting ();
181+ RenderHelper .enableStandardItemLighting ();
182182 GL11 .glPopAttrib ();
183183 }
184184
@@ -383,32 +383,14 @@ public static void renderText(float x, float y, float z, float scale, int color,
383383 }
384384
385385 public static void renderItemOverLay (float x , float y , float z , float scale , ItemStack itemStack ) {
386- net . minecraft . client . renderer . RenderHelper .enableStandardItemLighting ();
386+ RenderHelper .enableStandardItemLighting ();
387387 GlStateManager .pushMatrix ();
388388 GlStateManager .scale (scale , scale , 0.0001f );
389389 GlStateManager .translate (x * 16 , y * 16 , z * 16 );
390390 RenderItem renderItem = Minecraft .getMinecraft ().getRenderItem ();
391391 renderItem .renderItemAndEffectIntoGUI (itemStack , 0 , 0 );
392392 GlStateManager .popMatrix ();
393- net .minecraft .client .renderer .RenderHelper .disableStandardItemLighting ();
394- }
395-
396- // adapted from com.cleanroommc.modularui.drawable.GuiDraw.java
397- // todo merge this with the method from the qstorage mui2 port
398- public static void renderItem (ItemStack item , int x , int y , float width , float height ) {
399- if (item .isEmpty ()) return ;
400- GlStateManager .pushMatrix ();
401- RenderHelper .enableGUIStandardItemLighting ();
402- GlStateManager .enableDepth ();
403- GlStateManager .translate (x , y , 0 );
404- GlStateManager .scale (width / 16f , height / 16f , 1 );
405- RenderItem renderItem = MCHelper .getMc ().getRenderItem ();
406- renderItem .renderItemAndEffectIntoGUI (MCHelper .getPlayer (), item , 0 , 0 );
407- renderItem .renderItemOverlayIntoGUI (MCHelper .getFontRenderer (), item , 0 , 0 , null );
408- GlStateManager .disableDepth ();
409- RenderHelper .enableStandardItemLighting ();
410- GlStateManager .disableLighting ();
411- GlStateManager .popMatrix ();
393+ RenderHelper .disableStandardItemLighting ();
412394 }
413395
414396 public static void renderFluidOverLay (float x , float y , float width , float height , float z , FluidStack fluidStack ,
@@ -638,10 +620,10 @@ public static void hookDepthBuffer(Framebuffer fbo, int depthBuffer) {
638620 OpenGlHelper .glBindFramebuffer (OpenGlHelper .GL_FRAMEBUFFER , fbo .framebufferObject );
639621 if (fbo .isStencilEnabled ()) {
640622 OpenGlHelper .glFramebufferRenderbuffer (OpenGlHelper .GL_FRAMEBUFFER ,
641- org . lwjgl . opengl . EXTFramebufferObject .GL_DEPTH_ATTACHMENT_EXT , OpenGlHelper .GL_RENDERBUFFER ,
623+ EXTFramebufferObject .GL_DEPTH_ATTACHMENT_EXT , OpenGlHelper .GL_RENDERBUFFER ,
642624 depthBuffer );
643625 OpenGlHelper .glFramebufferRenderbuffer (OpenGlHelper .GL_FRAMEBUFFER ,
644- org . lwjgl . opengl . EXTFramebufferObject .GL_STENCIL_ATTACHMENT_EXT , OpenGlHelper .GL_RENDERBUFFER ,
626+ EXTFramebufferObject .GL_STENCIL_ATTACHMENT_EXT , OpenGlHelper .GL_RENDERBUFFER ,
645627 depthBuffer );
646628 } else {
647629 OpenGlHelper .glFramebufferRenderbuffer (OpenGlHelper .GL_FRAMEBUFFER , OpenGlHelper .GL_DEPTH_ATTACHMENT ,
@@ -720,6 +702,42 @@ public void put(int element, float @NotNull... data) {
720702 return getTextureMap ().getMissingSprite ();
721703 }
722704
705+ @ SideOnly (Side .CLIENT )
706+ public static void drawItemStack (ItemStack itemStack , int x , int y , boolean drawCount ) {
707+ int cache = itemStack .getCount ();
708+ if (!drawCount ) itemStack .setCount (1 );
709+ drawItemStack (itemStack , x , y , null );
710+ if (!drawCount ) itemStack .setCount (cache );
711+ }
712+
713+ @ SideOnly (Side .CLIENT )
714+ public static void drawItemStack (ItemStack itemStack , int x , int y , @ Nullable String altTxt ) {
715+ drawItemStack (itemStack , x , y , 16 , 16 , altTxt );
716+ }
717+
718+ @ SideOnly (Side .CLIENT )
719+ public static void drawItemStack (ItemStack itemStack , int x , int y , int w , int h , @ Nullable String altTxt ) {
720+ GlStateManager .pushMatrix ();
721+ GlStateManager .translate (0.0F , 0.0F , 32.0F );
722+ GlStateManager .scale (w / 16F , h / 16F , 1 );
723+ GlStateManager .color (1F , 1F , 1F , 1F );
724+ GlStateManager .enableDepth ();
725+ GlStateManager .enableRescaleNormal ();
726+ GlStateManager .enableLighting ();
727+ RenderHelper .enableGUIStandardItemLighting ();
728+ OpenGlHelper .setLightmapTextureCoords (OpenGlHelper .lightmapTexUnit , 240.0f , 240.0f );
729+ Minecraft mc = Minecraft .getMinecraft ();
730+ RenderItem itemRender = mc .getRenderItem ();
731+ itemRender .renderItemAndEffectIntoGUI (itemStack , x , y );
732+ itemRender .renderItemOverlayIntoGUI (mc .fontRenderer , itemStack , x , y , altTxt );
733+ GlStateManager .disableRescaleNormal ();
734+ GlStateManager .disableLighting ();
735+ GlStateManager .color (1F , 1F , 1F , 1F );
736+ GlStateManager .popMatrix ();
737+ GlStateManager .enableBlend ();
738+ GlStateManager .disableDepth ();
739+ }
740+
723741 public static void drawSlotOverlay (@ NotNull IWidget slot , int overlayColor ) {
724742 GlStateManager .colorMask (true , true , true , false );
725743 GuiDraw .drawRect (1 , 1 , slot .getArea ().w () - 2 , slot .getArea ().h () - 2 , overlayColor );
0 commit comments