Workaround very good decision of mojank to strip client classes from server

This commit is contained in:
DBotThePony 2024-08-31 14:20:30 +07:00
parent 90da43ec49
commit e2115397fe
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -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<ResourceLocation, RenderType>()