1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package me.km.items;
- import net.minecraft.client.renderer.entity.model.BipedModel;
- import net.minecraft.client.renderer.entity.model.RendererModel;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.item.ArmorStandEntity;
- import net.minecraftforge.api.distmarker.Dist;
- import net.minecraftforge.api.distmarker.OnlyIn;
- @OnlyIn(Dist.CLIENT)
- public class ModelHat extends BipedModel
- {
- private final static float FACTOR = ((float) Math.PI / 180.0f);
-
- private final RendererModel firstHeadPart;
- private final RendererModel secHeadPart;
- public ModelHat(float scale)
- {
- super(scale, 0, 64, 64);
-
- firstHeadPart = new RendererModel(this, 0, 32);
- firstHeadPart.addBox(-5, -8.6f, -5, 10, 1, 10);
- firstHeadPart.setRotationPoint(0F, 0F, 0F);
- firstHeadPart.setTextureSize(64, 64);
- firstHeadPart.mirror = true;
- setRotation(firstHeadPart, 0, 0, 0);
-
- secHeadPart = new RendererModel(this, 0, 43);
- secHeadPart.addBox(-3, -11.6f, -3, 6, 3, 6);
- secHeadPart.setRotationPoint(0F, 0F, 0F);
- secHeadPart.setTextureSize(64, 64);
- secHeadPart.mirror = true;
- setRotation(secHeadPart, 0, 0, 0);
-
- bipedHead.addChild(firstHeadPart);
- bipedHead.addChild(secHeadPart);
- }
-
- @Override
- public void setRotationAngles(Entity entityIn, float limbSwing, float limbSwingAmount,
- float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor)
- {
- if(entityIn instanceof ArmorStandEntity)
- {
- ArmorStandEntity ase = (ArmorStandEntity) entityIn;
- this.bipedHead.rotateAngleX = FACTOR * ase.getHeadRotation().getX();
- this.bipedHead.rotateAngleY = FACTOR * ase.getHeadRotation().getY();
- this.bipedHead.rotateAngleZ = FACTOR * ase.getHeadRotation().getZ();
- this.bipedHead.setRotationPoint(0.0F, 1.0F, 0.0F);
- this.bipedBody.rotateAngleX = FACTOR * ase.getBodyRotation().getX();
- this.bipedBody.rotateAngleY = FACTOR * ase.getBodyRotation().getY();
- this.bipedBody.rotateAngleZ = FACTOR * ase.getBodyRotation().getZ();
- this.bipedLeftArm.rotateAngleX = FACTOR * ase.getLeftArmRotation().getX();
- this.bipedLeftArm.rotateAngleY = FACTOR * ase.getLeftArmRotation().getY();
- this.bipedLeftArm.rotateAngleZ = FACTOR * ase.getLeftArmRotation().getZ();
- this.bipedRightArm.rotateAngleX = FACTOR * ase.getRightArmRotation().getX();
- this.bipedRightArm.rotateAngleY = FACTOR * ase.getRightArmRotation().getY();
- this.bipedRightArm.rotateAngleZ = FACTOR * ase.getRightArmRotation().getZ();
- this.bipedLeftLeg.rotateAngleX = FACTOR * ase.getLeftLegRotation().getX();
- this.bipedLeftLeg.rotateAngleY = FACTOR * ase.getLeftLegRotation().getY();
- this.bipedLeftLeg.rotateAngleZ = FACTOR * ase.getLeftLegRotation().getZ();
- this.bipedLeftLeg.setRotationPoint(1.9F, 11.0F, 0.0F);
- this.bipedRightLeg.rotateAngleX = FACTOR * ase.getRightLegRotation().getX();
- this.bipedRightLeg.rotateAngleY = FACTOR * ase.getRightLegRotation().getY();
- this.bipedRightLeg.rotateAngleZ = FACTOR * ase.getRightLegRotation().getZ();
- this.bipedRightLeg.setRotationPoint(-1.9F, 11.0F, 0.0F);
- this.bipedHeadwear.copyModelAngles(this.bipedHead);
- return;
- }
- super.setRotationAngles(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor);
- }
- private void setRotation(RendererModel model, float x, float y, float z)
- {
- model.rotateAngleX = x;
- model.rotateAngleY = y;
- model.rotateAngleZ = z;
- }
- }
|