diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/sprites/AbstractMatterySprite.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/sprites/AbstractMatterySprite.kt index faeb8d4cf..9464854b1 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/sprites/AbstractMatterySprite.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/sprites/AbstractMatterySprite.kt @@ -182,78 +182,85 @@ sealed class AbstractMatterySprite : IGUIRenderable, IUVCoords { type.toActualNetwork(this, buff) } - val renderTypeNoDepth by lazy { - noDepthCache.computeIfAbsent(texture) { - val builder = RenderType.CompositeState.builder() + private inner class ClientData { + val renderTypeNoDepth by lazy { + noDepthCache.computeIfAbsent(texture) { + val builder = RenderType.CompositeState.builder() - builder.setTextureState(RenderStateShard.TextureStateShard(it, false, false)) - builder.setShaderState(RenderStateShard.ShaderStateShard(GameRenderer::getPositionTexColorShader)) - builder.setDepthTestState(RenderStateShard.DepthTestStateShard("always", GL_ALWAYS)) - builder.setTransparencyState(RenderStateShard.TransparencyStateShard("normal_blend", { - RenderSystem.enableBlend() - RenderSystem.defaultBlendFunc() - }, { - RenderSystem.disableBlend() - })) + builder.setTextureState(RenderStateShard.TextureStateShard(it, false, false)) + builder.setShaderState(RenderStateShard.ShaderStateShard(GameRenderer::getPositionTexColorShader)) + builder.setDepthTestState(RenderStateShard.DepthTestStateShard("always", GL_ALWAYS)) + builder.setTransparencyState(RenderStateShard.TransparencyStateShard("normal_blend", { + RenderSystem.enableBlend() + RenderSystem.defaultBlendFunc() + }, { + RenderSystem.disableBlend() + })) - @Suppress("INACCESSIBLE_TYPE") - RenderType.create("otm_gui_element_no_depth", - DefaultVertexFormat.POSITION_TEX_COLOR, - VertexFormat.Mode.QUADS, - 2048, - false, - false, - builder.createCompositeState(false)) as RenderType + @Suppress("INACCESSIBLE_TYPE") + RenderType.create("otm_gui_element_no_depth", + DefaultVertexFormat.POSITION_TEX_COLOR, + VertexFormat.Mode.QUADS, + 2048, + false, + false, + builder.createCompositeState(false)) as RenderType + } + } + + val renderTypeDepth by lazy { + depthCache.computeIfAbsent(texture) { + val builder = RenderType.CompositeState.builder() + + builder.setTextureState(RenderStateShard.TextureStateShard(it, false, false)) + builder.setShaderState(RenderStateShard.ShaderStateShard(GameRenderer::getPositionTexColorShader)) + builder.setTransparencyState(RenderStateShard.TransparencyStateShard("normal_blend", { + RenderSystem.enableBlend() + RenderSystem.defaultBlendFunc() + }, { + RenderSystem.disableBlend() + })) + + @Suppress("INACCESSIBLE_TYPE") + RenderType.create("otm_gui_element_depth", + DefaultVertexFormat.POSITION_TEX_COLOR, + VertexFormat.Mode.QUADS, + 2048, + false, + false, + builder.createCompositeState(false)) as RenderType + } + } + + val renderTypeWorld by lazy { + worldCache.computeIfAbsent(texture) { + val builder = RenderType.CompositeState.builder() + + builder.setTextureState(RenderStateShard.TextureStateShard(it, false, false)) + builder.setShaderState(RenderStateShard.ShaderStateShard(GameRenderer::getPositionTexColorShader)) + builder.setTransparencyState(RenderStateShard.TransparencyStateShard("normal_blend", { + RenderSystem.enableBlend() + RenderSystem.defaultBlendFunc() + }, { + RenderSystem.disableBlend() + })) + + @Suppress("INACCESSIBLE_TYPE") + RenderType.create("otm_gui_element_world", + DefaultVertexFormat.POSITION_TEX_COLOR, + VertexFormat.Mode.QUADS, + 8192, + false, + false, + builder.createCompositeState(false)) as RenderType + } } } - val renderTypeDepth by lazy { - depthCache.computeIfAbsent(texture) { - val builder = RenderType.CompositeState.builder() - - builder.setTextureState(RenderStateShard.TextureStateShard(it, false, false)) - builder.setShaderState(RenderStateShard.ShaderStateShard(GameRenderer::getPositionTexColorShader)) - builder.setTransparencyState(RenderStateShard.TransparencyStateShard("normal_blend", { - RenderSystem.enableBlend() - RenderSystem.defaultBlendFunc() - }, { - RenderSystem.disableBlend() - })) - - @Suppress("INACCESSIBLE_TYPE") - RenderType.create("otm_gui_element_depth", - DefaultVertexFormat.POSITION_TEX_COLOR, - VertexFormat.Mode.QUADS, - 2048, - false, - false, - builder.createCompositeState(false)) as RenderType - } - } - - val renderTypeWorld by lazy { - worldCache.computeIfAbsent(texture) { - val builder = RenderType.CompositeState.builder() - - builder.setTextureState(RenderStateShard.TextureStateShard(it, false, false)) - builder.setShaderState(RenderStateShard.ShaderStateShard(GameRenderer::getPositionTexColorShader)) - builder.setTransparencyState(RenderStateShard.TransparencyStateShard("normal_blend", { - RenderSystem.enableBlend() - RenderSystem.defaultBlendFunc() - }, { - RenderSystem.disableBlend() - })) - - @Suppress("INACCESSIBLE_TYPE") - RenderType.create("otm_gui_element_world", - DefaultVertexFormat.POSITION_TEX_COLOR, - VertexFormat.Mode.QUADS, - 8192, - false, - false, - builder.createCompositeState(false)) as RenderType - } - } + private val clientData by lazy { ClientData() } + val renderTypeNoDepth get() = clientData.renderTypeNoDepth + val renderTypeDepth get() = clientData.renderTypeDepth + val renderTypeWorld get() = clientData.renderTypeWorld companion object { private val noDepthCache = ConcurrentHashMap()