properly crash when entity rendering is broken

This commit is contained in:
Moritz Zwerger 2023-11-18 17:46:35 +01:00
parent 03f9736fc2
commit 846d43cd76
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -17,6 +17,7 @@ import de.bixilon.kutil.concurrent.queue.Queue
import de.bixilon.kutil.latch.AbstractLatch import de.bixilon.kutil.latch.AbstractLatch
import de.bixilon.kutil.observer.DataObserver.Companion.observe import de.bixilon.kutil.observer.DataObserver.Companion.observe
import de.bixilon.kutil.time.TimeUtil.millis import de.bixilon.kutil.time.TimeUtil.millis
import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash
import de.bixilon.minosoft.gui.rendering.RenderContext import de.bixilon.minosoft.gui.rendering.RenderContext
import de.bixilon.minosoft.gui.rendering.entities.feature.EntityRenderFeature import de.bixilon.minosoft.gui.rendering.entities.feature.EntityRenderFeature
import de.bixilon.minosoft.gui.rendering.entities.feature.register.EntityRenderFeatures import de.bixilon.minosoft.gui.rendering.entities.feature.register.EntityRenderFeatures
@ -59,11 +60,16 @@ class EntitiesRenderer(
val millis = millis() val millis = millis()
this.visibility.reset() this.visibility.reset()
renderers.iterate { renderers.iterate {
if (reset) it.reset() try {
visibility.update(it, millis) if (reset) it.reset()
if (!it.visible) return@iterate visibility.update(it, millis)
it.update(millis) if (!it.visible) return@iterate
visibility.collect(it) it.update(millis)
visibility.collect(it)
} catch (error: Throwable) {
error.printStackTrace()
Exception("Exception while rendering entities: ${connection.connectionId}", error).crash()
}
} }
this.reset = false this.reset = false
this.visibility.finish() this.visibility.finish()