Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package io.github.blulow.att.client.renderer.model;
- import com.mojang.blaze3d.vertex.PoseStack;
- import com.mojang.blaze3d.vertex.VertexConsumer;
- import io.github.blulow.att.ATT;
- import net.minecraft.client.model.EntityModel;
- import net.minecraft.client.model.geom.ModelLayerLocation;
- import net.minecraft.client.model.geom.ModelPart;
- import net.minecraft.client.model.geom.PartPose;
- import net.minecraft.client.model.geom.builders.CubeDeformation;
- import net.minecraft.client.model.geom.builders.CubeListBuilder;
- import net.minecraft.client.model.geom.builders.LayerDefinition;
- import net.minecraft.client.model.geom.builders.MeshDefinition;
- import net.minecraft.client.model.geom.builders.PartDefinition;
- import net.minecraft.resources.ResourceLocation;
- import net.minecraft.world.entity.Entity;
- public class CinderetModel<T extends Entity> extends EntityModel<T> {
- public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ATT.MODID, "cinderet"), "main");
- private final ModelPart head;
- private final ModelPart body;
- private final ModelPart rightArm;
- private final ModelPart leftArm;
- private final ModelPart rightLeg;
- private final ModelPart leftLeg;
- public CinderetModel(ModelPart root) {
- this.head = root.getChild("head");
- this.body = root.getChild("Body");
- this.rightArm = root.getChild("RightArm");
- this.leftArm = root.getChild("LeftArm");
- this.rightLeg = root.getChild("RightLeg");
- this.leftLeg = root.getChild("LeftLeg");
- }
- public static LayerDefinition createBodyLayer() {
- MeshDefinition meshdefinition = new MeshDefinition();
- PartDefinition partdefinition = meshdefinition.getRoot();
- 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));
- 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));
- 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));
- 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));
- 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));
- 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));
- return LayerDefinition.create(meshdefinition, 64, 32);
- }
- @Override
- public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
- this.head.xRot = headPitch * ((float)Math.PI / 180F);
- this.head.yRot = netHeadYaw * ((float)Math.PI / 180F);
- this.rightArm.xRot = (float)Math.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
- this.leftArm.xRot = (float)Math.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
- this.rightLeg.xRot = (float)Math.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
- this.leftLeg.xRot = (float)Math.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
- }
- @Override
- public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
- head.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
- body.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
- rightArm.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
- leftArm.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
- rightLeg.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
- leftLeg.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment