Skip to content

Commit dd0187b

Browse files
committed
fix: memory leak
Closes #1227
1 parent 9255cf2 commit dd0187b

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/main/java/com/klikli_dev/occultism/integration/emi/impl/render/SpiritRenderable.java

+11-6
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,23 @@
77
import net.minecraft.client.gui.GuiGraphics;
88
import net.minecraft.world.entity.EntityType;
99

10+
import java.lang.ref.WeakReference;
1011

11-
public class SpiritRenderable<T extends SpiritEntity> implements EmiRenderable{
12-
T spiritEntity;
12+
13+
public class SpiritRenderable<T extends SpiritEntity> implements EmiRenderable {
14+
WeakReference<T> spiritEntity;
1315
EntityType<T> spiritType;
16+
1417
public SpiritRenderable(EntityType<T> spiritType) {
15-
this.spiritType=spiritType;
18+
this.spiritType = spiritType;
1619
}
1720

1821
@Override
1922
public void render(GuiGraphics draw, int x, int y, float delta) {
20-
if(spiritEntity==null)
21-
spiritEntity= (T) spiritType.create(Minecraft.getInstance().level);
22-
SpiritGui.drawEntityToGui(draw, (int) (x+8),(int)(y+(spiritEntity.getEyeHeight()*15)+5),15,1,1,spiritEntity);
23+
if (this.spiritEntity == null || this.spiritEntity.get() == null)
24+
this.spiritEntity = new WeakReference(this.spiritType.create(Minecraft.getInstance().level));
25+
26+
27+
SpiritGui.drawEntityToGui(draw, x + 8, (int) (y + (this.spiritEntity.get().getEyeHeight() * 15) + 5), 15, 1, 1, this.spiritEntity.get());
2328
}
2429
}

0 commit comments

Comments
 (0)