|
| 1 | +package net.shirojr.nemuelch.entity.client; |
| 2 | + |
| 3 | +import net.minecraft.client.model.*; |
| 4 | +import net.minecraft.client.render.RenderLayer; |
| 5 | +import net.minecraft.client.render.VertexConsumer; |
| 6 | +import net.minecraft.client.render.entity.model.SinglePartEntityModel; |
| 7 | +import net.minecraft.client.util.math.MatrixStack; |
| 8 | +import net.shirojr.nemuelch.entity.custom.LiftPlatformEntity; |
| 9 | + |
| 10 | +public class LiftPlatformModel<T extends LiftPlatformEntity> extends SinglePartEntityModel<T> { |
| 11 | + private final ModelPart base, palette, planks, connectorPlanks, straps, diagonal, top, holder; |
| 12 | + |
| 13 | + public LiftPlatformModel(ModelPart root) { |
| 14 | + super(RenderLayer::getEntityCutoutNoCull); |
| 15 | + this.base = root.getChild("base"); |
| 16 | + this.palette = this.base.getChild("palette"); |
| 17 | + this.connectorPlanks = this.palette.getChild("connector_planks"); |
| 18 | + this.planks = this.palette.getChild("planks"); |
| 19 | + this.straps = this.base.getChild("straps"); |
| 20 | + this.diagonal = this.straps.getChild("diagonal"); |
| 21 | + this.top = this.straps.getChild("top"); |
| 22 | + this.holder = this.base.getChild("holder"); |
| 23 | + } |
| 24 | + |
| 25 | + @SuppressWarnings("unused") |
| 26 | + public static TexturedModelData getTexturedModelData() { |
| 27 | + ModelData modelData = new ModelData(); |
| 28 | + ModelPartData modelPartData = modelData.getRoot(); |
| 29 | + ModelPartData base = modelPartData.addChild("base", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); |
| 30 | + |
| 31 | + ModelPartData palette = base.addChild("palette", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); |
| 32 | + |
| 33 | + ModelPartData connectorPlanks = palette.addChild("connector_planks", ModelPartBuilder.create().uv(0, 0).cuboid(20.0F, 0.0F, -22.0F, 6.0F, 2.0F, 44.0F, new Dilation(0.0F)) |
| 34 | + .uv(0, 0).cuboid(-2.0F, 0.0F, -22.0F, 6.0F, 2.0F, 44.0F, new Dilation(0.0F)), ModelTransform.pivot(-12.0F, 0.0F, 0.0F)); |
| 35 | + |
| 36 | + ModelPartData planks = palette.addChild("planks", ModelPartBuilder.create().uv(3, 49).cuboid(-16.0F, 0.0F, 39.0F, 32.0F, 2.0F, 6.0F, new Dilation(0.0F)) |
| 37 | + .uv(3, 49).cuboid(-16.0F, 0.0F, 46.0F, 32.0F, 2.0F, 6.0F, new Dilation(0.0F)) |
| 38 | + .uv(3, 49).mirrored().cuboid(-16.0F, 0.0F, 32.0F, 32.0F, 2.0F, 6.0F, new Dilation(0.0F)).mirrored(false) |
| 39 | + .uv(3, 49).mirrored().cuboid(-16.0F, 0.0F, 25.0F, 32.0F, 2.0F, 6.0F, new Dilation(0.0F)).mirrored(false) |
| 40 | + .uv(3, 49).cuboid(-16.0F, 0.0F, 4.0F, 32.0F, 2.0F, 6.0F, new Dilation(0.0F)) |
| 41 | + .uv(3, 49).mirrored().cuboid(-16.0F, 0.0F, 11.0F, 32.0F, 2.0F, 6.0F, new Dilation(0.0F)).mirrored(false) |
| 42 | + .uv(3, 49).cuboid(-16.0F, 0.0F, 18.0F, 32.0F, 2.0F, 6.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, 1.0F, -28.0F)); |
| 43 | + |
| 44 | + ModelPartData straps = base.addChild("straps", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, -1.75F, 0.0F)); |
| 45 | + |
| 46 | + ModelPartData diagonal = straps.addChild("diagonal", ModelPartBuilder.create(), ModelTransform.pivot(-11.0F, 4.0F, 21.0F)); |
| 47 | + |
| 48 | + ModelPartData cube_r1 = diagonal.addChild("cube_r1", ModelPartBuilder.create().uv(2, 0).mirrored().cuboid(0.0F, -30.0F, -1.0F, 0.0F, 30.0F, 2.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.of(23.5F, 21.75F, -22.0F, -2.3562F, 0.0F, 3.1416F)); |
| 49 | + |
| 50 | + ModelPartData cube_r2 = diagonal.addChild("cube_r2", ModelPartBuilder.create().uv(2, 0).cuboid(0.0F, -30.0F, -1.0F, 0.0F, 30.0F, 2.0F, new Dilation(0.0F)), ModelTransform.of(-1.5F, 21.75F, -22.0F, -2.3562F, 0.0F, -3.1416F)); |
| 51 | + |
| 52 | + ModelPartData cube_r3 = diagonal.addChild("cube_r3", ModelPartBuilder.create().uv(2, 0).cuboid(0.0F, -30.0F, -1.0F, 0.0F, 30.0F, 2.0F, new Dilation(0.0F)), ModelTransform.of(-1.5F, 21.75F, -20.0F, 0.7854F, 0.0F, 0.0F)); |
| 53 | + |
| 54 | + ModelPartData cube_r4 = diagonal.addChild("cube_r4", ModelPartBuilder.create().uv(2, 0).mirrored().cuboid(0.0F, -30.0F, -1.0F, 0.0F, 30.0F, 2.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.of(23.5F, 21.75F, -20.0F, 0.7854F, 0.0F, 0.0F)); |
| 55 | + |
| 56 | + ModelPartData top = straps.addChild("top", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); |
| 57 | + |
| 58 | + ModelPartData cube_r5 = top.addChild("cube_r5", ModelPartBuilder.create().uv(15, 20).cuboid(-1.5F, -1.0F, -1.5F, 3.0F, 1.0F, 3.0F, new Dilation(0.0F)), ModelTransform.of(1.0F, 26.75F, 0.0F, 0.0F, -0.7854F, 1.5708F)); |
| 59 | + |
| 60 | + ModelPartData cube_r6 = top.addChild("cube_r6", ModelPartBuilder.create().uv(15, 20).mirrored().cuboid(-1.5F, -1.0F, -1.5F, 3.0F, 1.0F, 3.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.of(-1.0F, 26.75F, 0.0F, 0.0F, 0.7854F, -1.5708F)); |
| 61 | + |
| 62 | + ModelPartData cube_r7 = top.addChild("cube_r7", ModelPartBuilder.create().uv(15, 20).mirrored().cuboid(-1.5F, -1.0F, -1.5F, 3.0F, 1.0F, 3.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.of(-13.0F, 26.75F, 0.0F, 0.0F, 0.7854F, -1.5708F)); |
| 63 | + |
| 64 | + ModelPartData cube_r8 = top.addChild("cube_r8", ModelPartBuilder.create().uv(15, 20).cuboid(-1.5F, -1.0F, -1.5F, 3.0F, 1.0F, 3.0F, new Dilation(0.0F)), ModelTransform.of(13.0F, 26.75F, 0.0F, 0.0F, -0.7854F, 1.5708F)); |
| 65 | + |
| 66 | + ModelPartData cube_r9 = top.addChild("cube_r9", ModelPartBuilder.create().uv(3, 63).cuboid(-17.0F, -0.9571F, -0.9571F, 34.0F, 2.0F, 2.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 26.7071F, -0.0429F, -0.7854F, 0.0F, 0.0F)); |
| 67 | + |
| 68 | + ModelPartData holder = base.addChild("holder", ModelPartBuilder.create().uv(16, 16).cuboid(11.5F, 3.0F, -23.0F, 2.0F, 1.0F, 3.0F, new Dilation(0.0F)) |
| 69 | + .uv(16, 16).cuboid(-13.5F, 3.0F, -23.0F, 2.0F, 1.0F, 3.0F, new Dilation(0.0F)) |
| 70 | + .uv(16, 16).cuboid(-13.5F, 3.0F, 20.0F, 2.0F, 1.0F, 3.0F, new Dilation(0.0F)) |
| 71 | + .uv(16, 16).cuboid(11.5F, 3.0F, 20.0F, 2.0F, 1.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); |
| 72 | + return TexturedModelData.of(modelData, 256, 256); |
| 73 | + } |
| 74 | + |
| 75 | + @Override |
| 76 | + public ModelPart getPart() { |
| 77 | + return this.base; |
| 78 | + } |
| 79 | + |
| 80 | + @Override |
| 81 | + public void setAngles(T entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) { |
| 82 | + |
| 83 | + } |
| 84 | + |
| 85 | + @Override |
| 86 | + public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) { |
| 87 | + this.base.render(matrices, vertices, light, overlay, red, green, blue, alpha); |
| 88 | + } |
| 89 | +} |
0 commit comments