Blulow

CinderetModel.java

Aug 14th, 2022
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.35 KB | Source Code | 0 0
  1. package io.github.blulow.att.client.renderer.model;
  2.  
  3. import com.mojang.blaze3d.vertex.PoseStack;
  4. import com.mojang.blaze3d.vertex.VertexConsumer;
  5.  
  6. import io.github.blulow.att.ATT;
  7. import net.minecraft.client.model.EntityModel;
  8. import net.minecraft.client.model.geom.ModelLayerLocation;
  9. import net.minecraft.client.model.geom.ModelPart;
  10. import net.minecraft.client.model.geom.PartPose;
  11. import net.minecraft.client.model.geom.builders.CubeDeformation;
  12. import net.minecraft.client.model.geom.builders.CubeListBuilder;
  13. import net.minecraft.client.model.geom.builders.LayerDefinition;
  14. import net.minecraft.client.model.geom.builders.MeshDefinition;
  15. import net.minecraft.client.model.geom.builders.PartDefinition;
  16. import net.minecraft.resources.ResourceLocation;
  17. import net.minecraft.world.entity.Entity;
  18.  
  19. public class CinderetModel<T extends Entity> extends EntityModel<T> {
  20.     public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ATT.MODID, "cinderet"), "main");
  21.     private final ModelPart head;
  22.     private final ModelPart body;
  23.     private final ModelPart rightArm;
  24.     private final ModelPart leftArm;
  25.     private final ModelPart rightLeg;
  26.     private final ModelPart leftLeg;
  27.  
  28.     public CinderetModel(ModelPart root) {
  29.         this.head = root.getChild("head");
  30.         this.body = root.getChild("Body");
  31.         this.rightArm = root.getChild("RightArm");
  32.         this.leftArm = root.getChild("LeftArm");
  33.         this.rightLeg = root.getChild("RightLeg");
  34.         this.leftLeg = root.getChild("LeftLeg");
  35.     }
  36.  
  37.     public static LayerDefinition createBodyLayer() {
  38.         MeshDefinition meshdefinition = new MeshDefinition();
  39.         PartDefinition partdefinition = meshdefinition.getRoot();
  40.         partdefinition.addOrReplaceChild("head", CubeListBuilder.create().texOffs(0, 16).addBox(-4.0F, -22.0F, -4.0F, 8.0F, 8.0F, 8.0F, new CubeDeformation(-0.5F)), PartPose.offset(0.0F, 0.0F, 0.0F));
  41.         partdefinition.addOrReplaceChild("Body", CubeListBuilder.create().texOffs(32, 16).addBox(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -14.0F, 0.0F));
  42.         partdefinition.addOrReplaceChild("RightArm", CubeListBuilder.create().texOffs(56, 0).addBox(-3.0F, -2.0F, -1.0F, 2.0F, 30.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(-3.0F, -12.0F, 0.0F));
  43.         partdefinition.addOrReplaceChild("LeftArm", CubeListBuilder.create().texOffs(56, 0).mirror().addBox(-1.0F, -2.0F, -1.0F, 2.0F, 30.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(5.0F, -12.0F, 0.0F));
  44.         partdefinition.addOrReplaceChild("RightLeg", CubeListBuilder.create().texOffs(56, 0).addBox(-1.0F, 0.0F, -1.0F, 2.0F, 30.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(-2.0F, -2.0F, 0.0F));
  45.         partdefinition.addOrReplaceChild("LeftLeg", CubeListBuilder.create().texOffs(56, 0).mirror().addBox(-1.0F, 0.0F, -1.0F, 2.0F, 30.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(2.0F, -2.0F, 0.0F));
  46.         return LayerDefinition.create(meshdefinition, 64, 32);
  47.     }
  48.  
  49.     @Override
  50.     public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
  51.         this.head.xRot = headPitch * ((float)Math.PI / 180F);
  52.         this.head.yRot = netHeadYaw * ((float)Math.PI / 180F);
  53.         this.rightArm.xRot = (float)Math.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
  54.         this.leftArm.xRot = (float)Math.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
  55.         this.rightLeg.xRot = (float)Math.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
  56.         this.leftLeg.xRot = (float)Math.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
  57.     }
  58.  
  59.     @Override
  60.     public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
  61.         head.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
  62.         body.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
  63.         rightArm.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
  64.         leftArm.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
  65.         rightLeg.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
  66.         leftLeg.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment