diff --git a/src/main/kotlin/mods/octarinecore/client/render/ModelRenderer.kt b/src/main/kotlin/mods/octarinecore/client/render/ModelRenderer.kt index 8848a2b..b75ff13 100644 --- a/src/main/kotlin/mods/octarinecore/client/render/ModelRenderer.kt +++ b/src/main/kotlin/mods/octarinecore/client/render/ModelRenderer.kt @@ -1,6 +1,5 @@ package mods.octarinecore.client.render -import mods.octarinecore.client.resource.resourceManager import mods.octarinecore.common.* import net.minecraft.client.Minecraft import net.minecraft.client.renderer.WorldRenderer @@ -8,6 +7,7 @@ import net.minecraft.client.renderer.texture.TextureAtlasSprite import net.minecraft.client.renderer.vertex.DefaultVertexFormats import net.minecraft.util.EnumFacing import net.minecraft.util.EnumFacing.* +import java.lang.Math.max class ModelRenderer() : ShadingContext() { @@ -41,10 +41,7 @@ class ModelRenderer() : ShadingContext() { aoEnabled = Minecraft.isAmbientOcclusionEnabled() // make sure we have space in the buffer for our quads plus one - worldRenderer.apply { - rawIntBuffer.position(bufferSize) - growBuffer((model.quads.size * 4 + 1) * vertexFormat.func_181719_f()) - } + worldRenderer.ensureSpaceForQuads(model.quads.size + 1) model.quads.forEachIndexed { quadIdx, quad -> val drawIcon = icon(this, quadIdx, quad) @@ -154,6 +151,11 @@ class RenderVertex() { } +fun WorldRenderer.ensureSpaceForQuads(num: Int) { + rawIntBuffer.position(bufferSize) + growBuffer(num * vertexFormat.nextOffset) +} + val allFaces: (EnumFacing) -> Boolean = { true } val topOnly: (EnumFacing) -> Boolean = { it == UP }