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) type.toActualNetwork(this, buff)
} }
val renderTypeNoDepth by lazy { private inner class ClientData {
noDepthCache.computeIfAbsent(texture) { val renderTypeNoDepth by lazy {
val builder = RenderType.CompositeState.builder() noDepthCache.computeIfAbsent(texture) {
val builder = RenderType.CompositeState.builder()
builder.setTextureState(RenderStateShard.TextureStateShard(it, false, false)) builder.setTextureState(RenderStateShard.TextureStateShard(it, false, false))
builder.setShaderState(RenderStateShard.ShaderStateShard(GameRenderer::getPositionTexColorShader)) builder.setShaderState(RenderStateShard.ShaderStateShard(GameRenderer::getPositionTexColorShader))
builder.setDepthTestState(RenderStateShard.DepthTestStateShard("always", GL_ALWAYS)) builder.setDepthTestState(RenderStateShard.DepthTestStateShard("always", GL_ALWAYS))
builder.setTransparencyState(RenderStateShard.TransparencyStateShard("normal_blend", { builder.setTransparencyState(RenderStateShard.TransparencyStateShard("normal_blend", {
RenderSystem.enableBlend() RenderSystem.enableBlend()
RenderSystem.defaultBlendFunc() RenderSystem.defaultBlendFunc()
}, { }, {
RenderSystem.disableBlend() RenderSystem.disableBlend()
})) }))
@Suppress("INACCESSIBLE_TYPE") @Suppress("INACCESSIBLE_TYPE")
RenderType.create("otm_gui_element_no_depth", RenderType.create("otm_gui_element_no_depth",
DefaultVertexFormat.POSITION_TEX_COLOR, DefaultVertexFormat.POSITION_TEX_COLOR,
VertexFormat.Mode.QUADS, VertexFormat.Mode.QUADS,
2048, 2048,
false, false,
false, false,
builder.createCompositeState(false)) as RenderType 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 { private val clientData by lazy { ClientData() }
depthCache.computeIfAbsent(texture) { val renderTypeNoDepth get() = clientData.renderTypeNoDepth
val builder = RenderType.CompositeState.builder() val renderTypeDepth get() = clientData.renderTypeDepth
val renderTypeWorld get() = clientData.renderTypeWorld
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
}
}
companion object { companion object {
private val noDepthCache = ConcurrentHashMap<ResourceLocation, RenderType>() private val noDepthCache = ConcurrentHashMap<ResourceLocation, RenderType>()