1010import foundry .veil .api .client .render .rendertype .VeilRenderType ;
1111import foundry .veil .example .VeilExampleMod ;
1212import foundry .veil .example .entity .TestEntity ;
13+ import net .minecraft .client .model .geom .ModelPart ;
14+ import net .minecraft .client .renderer .LightTexture ;
1315import net .minecraft .client .renderer .RenderType ;
1416import net .minecraft .client .renderer .entity .EntityRendererProvider ;
17+ import net .minecraft .client .renderer .texture .OverlayTexture ;
18+ import net .minecraft .core .Direction ;
1519import net .minecraft .resources .ResourceLocation ;
1620
21+ import java .util .Collections ;
22+ import java .util .EnumSet ;
23+ import java .util .List ;
24+
1725public class TestEntityRenderer extends NecromancerEntityRenderer <TestEntity , TestEntitySkeleton > {
1826
1927 private static final TestEntitySkeleton SKELETON = new TestEntitySkeleton ();
2028 private static final Skin TEST_SKIN = createSkin ();
2129 private static final ResourceLocation RENDERTYPE = VeilExampleMod .path ("test_entity" );
2230 private static final ResourceLocation TEXTURE_LOCATION = VeilExampleMod .path ("textures/entity/test.png" );
2331
32+ private final ModelPart test ;
33+
2434 public TestEntityRenderer (EntityRendererProvider .Context context ) {
2535 super (context , 1.0F );
2636 this .addLayer (new NecromancerSkinEntityRenderLayer <>(this ) {
@@ -34,24 +44,31 @@ public Skin getSkin(TestEntity parent) {
3444 return TEST_SKIN ;
3545 }
3646 });
47+ this .test = new ModelPart (List .of (new ModelPart .Cube (0 , 0 , 0 , 0 , 0 , 4 , 8 , 4 , 0 , 0 , 0 , false , 16 , 16 , EnumSet .allOf (Direction .class ))), Collections .emptyMap ());
3748 }
3849
3950 @ Override
40- public void render (TestEntity testEntity , NecromancerRenderer context , MatrixStack matrixStack , float partialTicks ) {
51+ public void render (TestEntity testEntity , NecromancerRenderer context , MatrixStack matrixStack , int packedLight , float partialTicks ) {
4152 for (Bone bone : SKELETON .bones .values ()) {
4253 bone .reset ();
43- bone .color .set (1 , 0 , 1 , 1 );
44- bone .x = -4 ;
54+ bone .color .set (1 , 1 , 1 , 1 );
55+ // bone.position.x = -4;
56+ // bone.position.z = -5;
57+ // bone.rotation.z = (float) (-Math.PI / 2);
4558 }
46- super .render (testEntity , context , matrixStack , 1.0F );
59+ matrixStack .matrixPush ();
60+ matrixStack .applyScale (-1.0F , -1.0F , 1.0F );
61+ matrixStack .translate (0.0F , -1.501F , 0.0F );
62+ this .test .render (matrixStack .toPoseStack (), context .getBuffer (RenderType .entityCutout (TEXTURE_LOCATION )), packedLight , OverlayTexture .NO_OVERLAY );
63+ matrixStack .matrixPop ();
64+ super .render (testEntity , context , matrixStack , packedLight , 1.0F );
4765 }
4866
4967 private static Skin createSkin () {
50- Skin .Builder builder = Skin .builder (64 , 64 );
68+ Skin .Builder builder = Skin .builder (16 , 16 );
5169
5270 builder .startBone ("test" );
53- builder .addCube (4 , 4 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , false );
54- builder .endBone ();
71+ builder .addCube (4 , 8 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , false );
5572
5673 return builder .build ();
5774 }
0 commit comments