1
1
package dev .kir .sync .client .render ;
2
2
3
+ import dev .kir .sync .Sync ;
4
+ import ladysnake .satin .api .managed .ManagedCoreShader ;
5
+ import ladysnake .satin .api .managed .ShaderEffectManager ;
6
+ import ladysnake .satin .api .managed .uniform .Uniform1f ;
7
+ import ladysnake .satin .api .managed .uniform .UniformMat4 ;
3
8
import net .fabricmc .api .EnvType ;
4
9
import net .fabricmc .api .Environment ;
5
10
import net .minecraft .client .MinecraftClient ;
6
11
import net .minecraft .client .render .BufferBuilderStorage ;
7
12
import net .minecraft .client .render .GameRenderer ;
8
- import net .minecraft .client .render .Shader ;
13
+ import net .minecraft .client .render .VertexFormats ;
9
14
import net .minecraft .resource .ResourceManager ;
15
+ import net .minecraft .util .math .Matrix4f ;
10
16
11
17
@ Environment (EnvType .CLIENT )
12
18
public final class CustomGameRenderer extends GameRenderer {
13
- private static Shader renderTypeEntityTranslucentPartiallyTexturedShader = null ;
14
- private static Shader renderTypeVoxelShader = null ;
19
+ private static final ManagedCoreShader RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER ;
20
+ private static final Uniform1f RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER_UNIFORM_CUTOUT_Y ;
21
+ private static final UniformMat4 RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER_UNIFORM_MODEL_MAT ;
22
+
23
+ private static final ManagedCoreShader RENDER_TYPE_VOXEL_SHADER ;
15
24
16
25
private CustomGameRenderer (MinecraftClient client , ResourceManager resourceManager , BufferBuilderStorage buffers ) {
17
26
super (client , resourceManager , buffers );
18
27
}
19
28
20
- public static void setRenderTypeEntityTranslucentPartiallyTexturedShader (Shader shader ) {
21
- renderTypeEntityTranslucentPartiallyTexturedShader = shader ;
29
+ public static void initRenderTypeEntityTranslucentPartiallyTexturedShader (float cutoutY , Matrix4f modelMatrix ) {
30
+ RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER_UNIFORM_CUTOUT_Y .set (cutoutY );
31
+ RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER_UNIFORM_MODEL_MAT .set (modelMatrix );
22
32
}
23
33
24
- public static Shader getRenderTypeEntityTranslucentPartiallyTexturedShader () {
25
- return renderTypeEntityTranslucentPartiallyTexturedShader ;
34
+ public static ManagedCoreShader getRenderTypeEntityTranslucentPartiallyTexturedShader () {
35
+ return RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER ;
26
36
}
27
37
28
- public static void setRenderTypeVoxelShader ( Shader shader ) {
29
- renderTypeVoxelShader = shader ;
38
+ public static ManagedCoreShader getRenderTypeVoxelShader ( ) {
39
+ return RENDER_TYPE_VOXEL_SHADER ;
30
40
}
31
41
32
- public static Shader getRenderTypeVoxelShader () {
33
- return renderTypeVoxelShader ;
42
+ public static void initClient () { }
43
+
44
+ static {
45
+ RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER = ShaderEffectManager .getInstance ().manageCoreShader (Sync .locate ("rendertype_entity_translucent_partially_textured" ), VertexFormats .POSITION_COLOR_TEXTURE_OVERLAY_LIGHT_NORMAL );
46
+ RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER_UNIFORM_CUTOUT_Y = RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER .findUniform1f ("CutoutY" );
47
+ RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER_UNIFORM_MODEL_MAT = RENDER_TYPE_ENTITY_TRANSLUCENT_PARTIALLY_TEXTURED_SHADER .findUniformMat4 ("ModelMat" );
48
+
49
+ RENDER_TYPE_VOXEL_SHADER = ShaderEffectManager .getInstance ().manageCoreShader (Sync .locate ("rendertype_voxel" ), CustomVertexFormats .POSITION_COLOR_OVERLAY_LIGHT_NORMAL );
34
50
}
35
51
}
0 commit comments