@@ -122,11 +122,10 @@ public void onRender(final RenderGameOverlayEvent.Post event) {
122122 glfwSetWindowTitle (minecraft .getMainWindow ().getHandle (), newTitle );
123123 }
124124
125-
126125 if (!visible
127126 || event .isCanceled ()
128127 // || minecraft.player.abilities.isCreativeMode
129- || event .getType ()!=RenderGameOverlayEvent .ElementType .POTION_ICONS )
128+ || event .getType ()!=RenderGameOverlayEvent .ElementType .HOTBAR )
130129 return ;
131130
132131 ClientPlayerEntity effectivePlayer = (ClientPlayerEntity ) minecraft .player ;
@@ -228,15 +227,43 @@ public void onRender(final RenderGameOverlayEvent.Post event) {
228227 }
229228
230229 RenderHelper .disableStandardItemLighting ();
230+ }
231+
232+ private void renderItemBreakingOverlay (MatrixStack matrices , ItemStack itemStack , long timeDelta ) {
233+ MainWindow mainWindow =Minecraft .getInstance ().getMainWindow ();
234+ float alpha = 1.0f -((float )timeDelta /1000.0f );
235+ float xWarn = mainWindow .getScaledWidth ()/2 ;
236+ float yWarn = mainWindow .getScaledHeight ()/2 ;
237+ float scale = 5.0f ;
231238
239+ AbstractGui .fill (matrices , 0 , 0 , mainWindow .getScaledWidth (), mainWindow .getScaledHeight (),
240+ 0xff0000 + ((int )(alpha *128 )<<24 ));
241+
242+ RenderSystem .pushMatrix ();
243+ RenderSystem .scalef (scale , scale , scale );
244+ itemRenderer .renderItemAndEffectIntoGUI (itemStack , (int )((xWarn )/scale -8 ), (int )((yWarn )/scale -8 ));
245+ // System.out.println("rendering at "+xWarn+"/"+yWarn+", scale="+scale+", alpha="+alpha);
246+ RenderSystem .popMatrix ();
247+ GlStateManager .color4f (1.0f , 1.0f , 1.0f , 1.0f );
248+ }
249+
250+ @ SubscribeEvent (priority = EventPriority .NORMAL )
251+ public void afterRenderStatusEffects (final RenderGameOverlayEvent .Post event ) {
252+ if (!visible
253+ || event .isCanceled ()
254+ // || minecraft.player.abilities.isCreativeMode
255+ || event .getType () != RenderGameOverlayEvent .ElementType .POTION_ICONS )
256+ return ;
232257 if (ConfigurationHandler .showEffectDuration ()) {
233258 // a lot of this is copied from net/minecraft/client/gui/GuiIngame.java
259+ MainWindow mainWindow =Minecraft .getInstance ().getMainWindow ();
234260 Collection <EffectInstance > collection = minecraft .player .getActivePotionEffects ();
235261 int posGood =0 , posBad =0 ;
236262 for (EffectInstance potioneffect : Ordering .natural ().reverse ().sortedCopy (collection )) {
237263 if (potioneffect .doesShowParticles ()) {
238264 Effect potion = potioneffect .getPotion ();
239- xpos =mainWindow .getScaledWidth ();
265+ int xpos =mainWindow .getScaledWidth ();
266+ int ypos ;
240267 if (potion .isBeneficial ()) {
241268 posGood +=25 ; xpos -=posGood ; ypos =15 ;
242269 } else {
@@ -252,24 +279,6 @@ public void onRender(final RenderGameOverlayEvent.Post event) {
252279 }
253280 }
254281 }
255- }
256-
257- private void renderItemBreakingOverlay (MatrixStack matrices , ItemStack itemStack , long timeDelta ) {
258- MainWindow mainWindow =Minecraft .getInstance ().getMainWindow ();
259- float alpha = 1.0f -((float )timeDelta /1000.0f );
260- float xWarn = mainWindow .getScaledWidth ()/2 ;
261- float yWarn = mainWindow .getScaledHeight ()/2 ;
262- float scale = 5.0f ;
263-
264- AbstractGui .fill (matrices , 0 , 0 , mainWindow .getScaledWidth (), mainWindow .getScaledHeight (),
265- 0xff0000 + ((int )(alpha *128 )<<24 ));
266-
267- RenderSystem .pushMatrix ();
268- RenderSystem .scalef (scale , scale , scale );
269- itemRenderer .renderItemAndEffectIntoGUI (itemStack , (int )((xWarn )/scale -8 ), (int )((yWarn )/scale -8 ));
270- // System.out.println("rendering at "+xWarn+"/"+yWarn+", scale="+scale+", alpha="+alpha);
271- RenderSystem .popMatrix ();
272- GlStateManager .color4f (1.0f , 1.0f , 1.0f , 1.0f );
273282 }
274283
275284 private RenderSize renderItems (MatrixStack stack , int xpos , int ypos , boolean reallyDraw , RenderPos numberPos , int maxWidth , ItemIndicator ... items ) {
0 commit comments