diff --git a/src/main/java/com/klikli_dev/occultism/integration/emi/impl/render/SpiritRenderable.java b/src/main/java/com/klikli_dev/occultism/integration/emi/impl/render/SpiritRenderable.java index 535cdcb7f..e95a7ccdd 100644 --- a/src/main/java/com/klikli_dev/occultism/integration/emi/impl/render/SpiritRenderable.java +++ b/src/main/java/com/klikli_dev/occultism/integration/emi/impl/render/SpiritRenderable.java @@ -7,18 +7,23 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.world.entity.EntityType; +import java.lang.ref.WeakReference; -public class SpiritRenderable implements EmiRenderable{ - T spiritEntity; + +public class SpiritRenderable implements EmiRenderable { + WeakReference spiritEntity; EntityType spiritType; + public SpiritRenderable(EntityType spiritType) { - this.spiritType=spiritType; + this.spiritType = spiritType; } @Override public void render(GuiGraphics draw, int x, int y, float delta) { - if(spiritEntity==null) - spiritEntity= (T) spiritType.create(Minecraft.getInstance().level); - SpiritGui.drawEntityToGui(draw, (int) (x+8),(int)(y+(spiritEntity.getEyeHeight()*15)+5),15,1,1,spiritEntity); + if (this.spiritEntity == null || this.spiritEntity.get() == null) + this.spiritEntity = new WeakReference(this.spiritType.create(Minecraft.getInstance().level)); + + + SpiritGui.drawEntityToGui(draw, x + 8, (int) (y + (this.spiritEntity.get().getEyeHeight() * 15) + 5), 15, 1, 1, this.spiritEntity.get()); } } \ No newline at end of file