Fix 4 world client leaks (#235)

This commit is contained in:
Alexdoru authored and GitHub committed 2026-05-04 14:07:16 +02:00
1 parent 924b4dbbf2
commit 48e30828cf
4 files changed
+27 -14

No files matched your search

@@ -53,16 +53,16 @@ import crazypants.util.RenderPassHelper;
public class IoConfigRenderer {
protected static final RenderBlocks RB = new RenderBlocks();
protected final RenderBlocks RB = new RenderBlocks();
private boolean dragging = false;
private float pitch = 0;
private float yaw = 0;
private float pitch;
private float yaw;
private double distance;
private long initTime;
private final Minecraft mc = Minecraft.getMinecraft();
private World world = mc.thePlayer.worldObj;
private final World world;
private final Vector3d origin = new Vector3d();
private final Vector3d eye = new Vector3d();
@@ -2,7 +2,6 @@ package crazypants.enderio.item.darksteel.upgrade;
import static org.lwjgl.opengl.GL11.glDepthMask;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
@@ -77,11 +76,11 @@ public class GliderUpgrade extends AbstractUpgrade {
@SideOnly(Side.CLIENT)
private static class Render implements IRenderUpgrade {
private final EntityItem item = new EntityItem(Minecraft.getMinecraft().theWorld);
private final EntityItem item;
private Render() {
ItemStack glider = new ItemStack(DarkSteelItems.itemGliderWing, 1, 1);
item.setEntityItemStack(glider);
item = new EntityItem(null, 0, 0, 0, glider);
}
@Override
@@ -94,7 +93,12 @@ public class GliderUpgrade extends AbstractUpgrade {
GL11.glTranslatef(-0, 1, 0.25f);
GL11.glRotatef(180, 1, 0, 0);
GL11.glScalef(3, 3, 3);
RenderManager.instance.renderEntityWithPosYaw(item, 0, 0, 0, 0, 0);
try {
item.setWorld(event.entityPlayer.worldObj);
RenderManager.instance.renderEntityWithPosYaw(item, 0, 0, 0, 0, 0);
} finally {
item.setWorld(null);
}
}
}
}
@@ -2,7 +2,6 @@ package crazypants.enderio.item.darksteel.upgrade;
import static org.lwjgl.opengl.GL11.glDepthMask;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
@@ -119,7 +118,7 @@ public class SolarUpgrade extends AbstractUpgrade {
@SideOnly(Side.CLIENT)
private static class Render implements IRenderUpgrade {
private final EntityItem item = new EntityItem(Minecraft.getMinecraft().theWorld);
private final EntityItem item = new EntityItem(null);
@Override
public void render(RenderPlayerEvent event, ItemStack stack, boolean head) {
@@ -132,8 +131,13 @@ public class SolarUpgrade extends AbstractUpgrade {
GL11.glRotated(180, 1, 0, 0);
GL11.glScalef(2.1f, 2.1f, 2.1f);
byte level = loadFromItem(stack).level;
item.setEntityItemStack(new ItemStack(EnderIO.blockSolarPanel, 1, level - 1));
RenderManager.instance.renderEntityWithPosYaw(item, 0, 0, 0, 0, 0);
try {
item.setWorld(event.entityPlayer.worldObj);
item.setEntityItemStack(new ItemStack(EnderIO.blockSolarPanel, 1, level - 1));
RenderManager.instance.renderEntityWithPosYaw(item, 0, 0, 0, 0, 0);
} finally {
item.setWorld(null);
}
}
}
}
@@ -161,11 +161,16 @@ public class TravelEntitySpecialRenderer extends TileEntitySpecialRenderer {
GL11.glScalef(2, 2, 2);
if (ei == null) {
ei = new EntityItem(tileentity.getWorldObj(), x, y, z, itemLabel);
ei = new EntityItem(null, x, y, z, itemLabel);
} else {
ei.setEntityItemStack(itemLabel);
}
RenderUtil.render3DItem(ei, false);
try {
ei.setWorld(tileentity.getWorldObj());
RenderUtil.render3DItem(ei, false);
} finally {
ei.setWorld(null);
}
GL11.glPopMatrix();
}
GL11.glPopMatrix();