fix three world leaks in TESR (#136)

This commit is contained in:
Alexdoru authored and GitHub committed 2026-05-18 16:47:11 +00:00
1 parent 944aec7441
commit ec99a884b6
7 files changed
+24 -49

No files matched your search

@@ -12,10 +12,8 @@ package vazkii.botania.client.render.item;
import java.awt.Color;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.client.IItemRenderer;
@@ -27,9 +25,6 @@ import vazkii.botania.common.item.lens.ItemLens;
public class RenderLens implements IItemRenderer {
static RenderItem render = new RenderItem();
ItemRenderer renderer = new ItemRenderer(Minecraft.getMinecraft());
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
return type != ItemRenderType.INVENTORY;
@@ -42,25 +37,22 @@ public class RenderLens implements IItemRenderer {
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
switch(type) {
case ENTITY : {
GL11.glPushMatrix();
GL11.glTranslatef(-0.5F, 0F, 0F);
if(item.isOnItemFrame())
GL11.glTranslatef(0F, -0.3F, 0.01F);
render(item);
GL11.glPopMatrix();
break;
}
case EQUIPPED : {
render(item);
break;
}
case EQUIPPED_FIRST_PERSON : {
render(item);
break;
}
default : break;
switch (type) {
case ENTITY: {
GL11.glPushMatrix();
GL11.glTranslatef(-0.5F, 0F, 0F);
if (item.isOnItemFrame())
GL11.glTranslatef(0F, -0.3F, 0.01F);
render(item);
GL11.glPopMatrix();
break;
}
case EQUIPPED, EQUIPPED_FIRST_PERSON: {
render(item);
break;
}
default:
break;
}
}
@@ -111,7 +103,7 @@ public class RenderLens implements IItemRenderer {
float zLevel = 0F;
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
if(shiny)
if (shiny)
tessellator.setBrightness(240);
tessellator.addVertexWithUV(par1 + 0, par2 + par5, zLevel, icon.getMinU(), icon.getMaxV());
tessellator.addVertexWithUV(par1 + par4, par2 + par5, zLevel, icon.getMaxU(), icon.getMaxV());
@@ -17,7 +17,6 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.init.Blocks;
@@ -52,7 +51,6 @@ public class RenderTileAltar extends TileEntitySpecialRenderer {
private static final ResourceLocation textureMossy = new ResourceLocation(LibResources.MODEL_ALTAR_MOSSY);
ModelAltar model = new ModelAltar();
RenderItem renderItem = new RenderItem();
RenderBlocks renderBlocks = new RenderBlocks();
public static int forceMeta = -1;
@@ -61,6 +61,7 @@ public class RenderTileBrewery extends TileEntitySpecialRenderer {
model.render(this, time);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glPopMatrix();
brewery = null;
}
public void renderItemStack(ItemStack stack) {
@@ -11,7 +11,6 @@
package vazkii.botania.client.render.tile;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.item.EntityItem;
@@ -33,15 +32,12 @@ public class RenderTileCorporeaCrystalCube extends TileEntitySpecialRenderer {
private static final ResourceLocation texture = new ResourceLocation(LibResources.MODEL_CRYSTAL_CUBE);
ModelCrystalCube model = new ModelCrystalCube();
EntityItem entity = null;
EntityItem entity = new EntityItem(null, 0, 0, 0, new ItemStack(Blocks.stone));
@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTicks) {
TileCorporeaCrystalCube cube = (TileCorporeaCrystalCube) tileEntity;
if(entity == null)
entity = new EntityItem(cube.getWorldObj(), cube.xCoord, cube.yCoord, cube.zCoord, new ItemStack(Blocks.stone));
entity.age = ClientTickHandler.ticksInGame;
ItemStack stack = cube.getRequestTarget();
entity.setEntityItemStack(stack);
@@ -67,7 +63,7 @@ public class RenderTileCorporeaCrystalCube extends TileEntitySpecialRenderer {
GL11.glTranslatef(0F, 0.8F, 0F);
GL11.glScalef(s, s, s);
GL11.glRotatef(180F, 0F, 0F, 1F);
((Render) RenderManager.instance.entityRenderMap.get(EntityItem.class)).doRender(entity, 0, 0, 0, 1F, partialTicks);
RenderManager.instance.entityRenderMap.get(EntityItem.class).doRender(entity, 0, 0, 0, 1F, partialTicks);
GL11.glPopMatrix();
mc.renderEngine.bindTexture(texture);
}
@@ -12,15 +12,13 @@ package vazkii.botania.client.render.tile;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import org.lwjgl.opengl.GL11;
@@ -32,8 +30,7 @@ import vazkii.botania.common.block.tile.TileEnchanter;
public class RenderTileEnchanter extends TileEntitySpecialRenderer {
RenderItem renderItem = new RenderItem();
EntityItem item;
EntityItem item = new EntityItem(null, 0, 0, 0, new ItemStack(Blocks.stone));
@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTicks) {
@@ -48,15 +45,12 @@ public class RenderTileEnchanter extends TileEntitySpecialRenderer {
alphaMod = 1F;
if(enchanter.itemToEnchant != null) {
if(item == null)
item = new EntityItem(enchanter.getWorldObj(), enchanter.xCoord, enchanter.yCoord + 1, enchanter.zCoord, enchanter.itemToEnchant);
item.age = ClientTickHandler.ticksInGame;
item.setEntityItemStack(enchanter.itemToEnchant);
GL11.glColor4f(1F, 1F, 1F, 1F);
GL11.glTranslatef(0.5F, 1.25F, 0.5F);
((Render) RenderManager.instance.entityRenderMap.get(EntityItem.class)).doRender(item, x, y, z, 1F, partialTicks);
RenderManager.instance.entityRenderMap.get(EntityItem.class).doRender(item, x, y, z, 1F, partialTicks);
GL11.glTranslatef(-0.5F, -1.25F, -0.5F);
}
@@ -15,8 +15,6 @@ import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.passive.EntitySheep;
@@ -44,7 +42,6 @@ public class RenderTilePool extends TileEntitySpecialRenderer {
private static final ResourceLocation textureDil = new ResourceLocation(LibResources.MODEL_DILUTED_POOL);
private static final ModelPool model = new ModelPool();
RenderItem renderItem = new RenderItem();
public static int forceMeta = 0;
public static boolean forceMana = false;
@@ -47,9 +47,6 @@ public class SkyblockSkyRenderer extends IRenderHandler {
@Override
public void render(float partialTicks, WorldClient world, Minecraft mc) {
boolean test = false;
if(test)
return;
int glSkyList = ReflectionHelper.getPrivateValue(RenderGlobal.class, mc.renderGlobal, LibObfuscation.GL_SKY_LIST);
int starGLCallList = ReflectionHelper.getPrivateValue(RenderGlobal.class, mc.renderGlobal, LibObfuscation.STAR_GL_CALL_LIST);