Jump to content

Recommended Posts

Posted

I'm trying to make my new entity move it's legs similar to a dog but, so far i'm getting an animation where it looks like this when it moves:

 

width=800 height=413http://i1319.photobucket.com/albums/t661/Nova_Leary/2015-03-28_10.43.01_zps16xxbka5.png[/img]

 

width=800 height=413http://i1319.photobucket.com/albums/t661/Nova_Leary/2015-03-28_10.46.37_zpsyfkldfif.png[/img]

 

I can't figure out how to achieve a movement similar to this this when walking:

Or this when running:

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

Also, I'm having a bit of trouble making the mouth constantly move up and down, to make it look like it's breathing. But just very slightly and then open it's mouth all the way when it plays a sound, like growl and bark for instance. I'm not sure how to configure the rotation methods that i'm using to achieve this, here is my code:

 

package common.zeroquest.client.renderer.entity.model;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.MathHelper;

import common.zeroquest.entity.EntityZertumEntity;

public class ModelZertum extends ModelBase
{
  //fields
    ModelRenderer RightEarPart1;
    ModelRenderer RightEarPart2;
    ModelRenderer RightEarPart3;
    ModelRenderer LeftEarPart1;
    ModelRenderer LeftEarPart2;
    ModelRenderer LeftEarPart3;
    ModelRenderer LeftBottomJaw;
    ModelRenderer BottomJawPart1;
    ModelRenderer BottomJawPart2;
    ModelRenderer BottomJawCenter;
    ModelRenderer LeftTopTeeth;
    ModelRenderer LeftTopJaw;
    ModelRenderer LeftBottomTeeth;
    ModelRenderer RightTopTeeth;
    ModelRenderer RightBottomTeeth;
    ModelRenderer TopJawPart1;
    ModelRenderer TopJawPart2;
    ModelRenderer TopJawCenter;
    ModelRenderer RightTopJaw;
    ModelRenderer RightBottomJaw;
    ModelRenderer Throat;
    ModelRenderer UpSection;
    ModelRenderer MidSection;
    ModelRenderer Pelvis;
    ModelRenderer TailPart1;
    ModelRenderer TailPart2;
    ModelRenderer TailPart3;
    ModelRenderer LeftHumerus;
    ModelRenderer LeftRadius;
    ModelRenderer LeftFClawRPart1;
    ModelRenderer LeftFClawRPart2;
    ModelRenderer LeftFClawMPart1;
    ModelRenderer LeftFClawMPart2;
    ModelRenderer LeftFClawLPart2;
    ModelRenderer LeftFClawLPart1;
    ModelRenderer RightHumerus;
    ModelRenderer RightRadius;
    ModelRenderer RightFClawRPart1;
    ModelRenderer RightFClawRPart2;
    ModelRenderer RightFClawMPart1;
    ModelRenderer RightFClawMPart2;
    ModelRenderer RightFClawLPart1;
    ModelRenderer RightFClawLPart2;
    ModelRenderer LeftFemur;
    ModelRenderer LeftTibia;
    ModelRenderer LeftMetatarsus;
    ModelRenderer LeftClawLPart1;
    ModelRenderer LeftClawLPart2;
    ModelRenderer LeftClawRPart1;
    ModelRenderer LeftClawRPart2;
    ModelRenderer LeftClawMPart1;
    ModelRenderer LeftClawMPart2;
    ModelRenderer RightFemur;
    ModelRenderer RightTibia;
    ModelRenderer RightMetatarsus;
    ModelRenderer RightClawRPart1;
    ModelRenderer RightClawRPart2;
    ModelRenderer RightClawMPart1;
    ModelRenderer RightClawMPart2;
    ModelRenderer RightClawLPart1;
    ModelRenderer RightClawLPart2;
    
  
  public ModelZertum()
  {
    textureWidth = 256;
    textureHeight = 128;
    //Ears\\
      RightEarPart1 = new ModelRenderer(this, 18, 60);
      RightEarPart1.addBox(-1F, -1F, -1F, 1, 1, 4);
      RightEarPart1.setRotationPoint(-1.5F, 1.5F, -5F);
      setRotation(RightEarPart1, 0.0346075F, -0.3346075F, 0F);
      RightEarPart2 = new ModelRenderer(this, 15, 66);
      RightEarPart2.addBox(-1F, -1F, 0F, 2, 2, 6);
      RightEarPart2.setRotationPoint(-0.5F, -0.5F, 0F);
      setRotation(RightEarPart2, 0.3346075F, -0.0346075F, 0F);
      RightEarPart3 = new ModelRenderer(this, 16, 75);
      RightEarPart3.addBox(-0.5F, -0.5F, 0F, 1, 1, 6);
      RightEarPart3.setRotationPoint(-0.5F, 0F, 4F);
      setRotation(RightEarPart3, 0.0346075F, 0.4115358F, 0.0743572F);
      LeftEarPart1 = new ModelRenderer(this, 18, 60);
      LeftEarPart1.addBox(-1F, -1F, -1F, 1, 1, 4);
      LeftEarPart1.setRotationPoint(3.5F, 1.5F, -5F);
      setRotation(LeftEarPart1, 0.3346075F, 0.3346145F, 0F);
      LeftEarPart2 = new ModelRenderer(this, 15, 66);
      LeftEarPart2.addBox(-1F, -1F, 0F, 2, 2, 6);
      LeftEarPart2.setRotationPoint(-0.5F, -0.5F, 0F);
      setRotation(LeftEarPart2, 0.0346075F, 0.0346145F, 0F);
      LeftEarPart3 = new ModelRenderer(this, 16, 75);
      LeftEarPart3.addBox(-0.5F, -0.5F, 0F, 1, 1, 6);
      LeftEarPart3.setRotationPoint(0.5F, 0F, 4F);
      setRotation(LeftEarPart3, 0.0346145F, -0.411544F, -0.074351F);
      
      //Top Jaw\\
      TopJawCenter = new ModelRenderer(this, 56, 38);
      TopJawCenter.addBox(-0.5F, 0F, -7.4F, 2, 1, ;
      TopJawCenter.setRotationPoint(0.5F, -4F, -8F);
      setRotation(TopJawCenter, 0.0587144F, 0F, 0F);
      LeftTopJaw = new ModelRenderer(this, 39, 50);
      LeftTopJaw.addBox(0F, 0F, -9F, 1, 2, 9);
      LeftTopJaw.setRotationPoint(3F, 0F, 0F);
      setRotation(LeftTopJaw, 0F, 0.3346075F, 0F);
      LeftTopTeeth = new ModelRenderer(this, 61, 50);
      LeftTopTeeth.addBox(0.5F, 0F, -9.3F, 0, 1, 5);
      LeftTopTeeth.setRotationPoint(0F, 2F, 0F);
      setRotation(LeftTopTeeth, 0F, -0.0346145F, 0F);
      RightTopJaw = new ModelRenderer(this, 39, 63);
      RightTopJaw.addBox(-1F, 0F, -9F, 1, 2, 9);
      RightTopJaw.setRotationPoint(-2F, 0F, 0F);
      setRotation(RightTopJaw, 0F, -0.3346075F, 0F);
      RightTopTeeth = new ModelRenderer(this, 61, 50);
      RightTopTeeth.addBox(-0.5F, 0F, -9.3F, 0, 1, 5);
      RightTopTeeth.setRotationPoint(0F, 2F, 0F);
      setRotation(RightTopTeeth, 0F, 0.0346075F, 0F);
      TopJawPart1 = new ModelRenderer(this, 38, 40);
      TopJawPart1.addBox(-1F, 0F, -5.7F, 2, 1, 6);
      TopJawPart1.setRotationPoint(-1F, 0F, 0F);
      setRotation(TopJawPart1, 0F, -0.3346075F, 0F);
      TopJawPart2 = new ModelRenderer(this, 38, 40);
      TopJawPart2.addBox(-1F, 0F, -5.7F, 2, 1, 6);
      TopJawPart2.setRotationPoint(2F, 0F, 0F);
      setRotation(TopJawPart2, 0F, 0.3346145F, 0F);
      
      //BottomJaw\\
      BottomJawCenter = new ModelRenderer(this, 0, 109);
      BottomJawCenter.addBox(-0.5F, 0F, -7.2F, 2, 1, ;
      BottomJawCenter.setRotationPoint(0.5F, 1F, -8F);
      setRotation(BottomJawCenter, 0.1587144F, 0F, 0F);
      LeftBottomJaw = new ModelRenderer(this, 0, 84);
      LeftBottomJaw.addBox(0F, 0F, -9F, 1, 2, 9);
      LeftBottomJaw.setRotationPoint(3F, -1.1F, 0F);
      setRotation(LeftBottomJaw, 0.1487144F, 0.3346075F, 0F);
      LeftBottomTeeth = new ModelRenderer(this, 21, 93);
      LeftBottomTeeth.addBox(0.5F, 0F, -9.3F, 0, 1, 5);
      LeftBottomTeeth.setRotationPoint(0.5F, -2.2F, 0F);
      setRotation(LeftBottomTeeth, 0.1487144F, 0.0346145F, 0F);
      RightBottomJaw = new ModelRenderer(this, 0, 97);
      RightBottomJaw.addBox(-1F, 0F, -9F, 1, 2, 9);
      RightBottomJaw.setRotationPoint(-2F, -1.1F, 0F);
      setRotation(RightBottomJaw, 0.1487144F, -0.3346075F, 0F);
      RightBottomTeeth = new ModelRenderer(this, 21, 93);
      RightBottomTeeth.addBox(-0.5F, 0F, -9.3F, 0, 1, 5);
      RightBottomTeeth.setRotationPoint(-0.5F, -2.1F, 0F);
      setRotation(RightBottomTeeth, 0.1487144F, -0.0346075F, 0F);
      BottomJawPart1 = new ModelRenderer(this, 21, 84);
      BottomJawPart1.addBox(-1F, 0F, -6.5F, 2, 1, 7);
      BottomJawPart1.setRotationPoint(-1F, 0F, 0F);
      setRotation(BottomJawPart1, 0.1487144F, -0.3346075F, 0F);
      BottomJawPart2 = new ModelRenderer(this, 21, 84);
      BottomJawPart2.addBox(-1F, 0F, -6.5F, 2, 1, 7);
      BottomJawPart2.setRotationPoint(2F, 0F, 0F);
      setRotation(BottomJawPart2, 0.1487144F, 0.3346075F, 0F);
      
      Throat = new ModelRenderer(this, 0, 0);
      Throat.addBox(-2F, -3F, -9F, 6, 5, 6);
      Throat.setRotationPoint(0.5F, 7.7F, -11F);
      setRotation(Throat, -0.2288904F, 0F, 0F);
      UpSection = new ModelRenderer(this, 25, 0);
      UpSection.addBox(-2F, -2.5F, -9F, 7, 7, ;
      UpSection.setRotationPoint(-0.5F, -0.5F, 2F);
      setRotation(UpSection, -0.1917118F, 0F, 0F);
      MidSection = new ModelRenderer(this, 56, 0);
      MidSection.addBox(-2F, -2.5F, 0F, 6, 6, 9);
      MidSection.setRotationPoint(0.5F, 7.5F, -8F);
      setRotation(MidSection, -0.0429974F, 0F, 0F);
      Pelvis = new ModelRenderer(this, 87, 0);
      Pelvis.addBox(-2F, -2.5F, 0F, 6, 6, 7);
      Pelvis.setRotationPoint(0F, 0F, 8F);
      setRotation(Pelvis, 0F, 0F, 0F);
      TailPart1 = new ModelRenderer(this, 114, 0);
      TailPart1.addBox(-1F, -1F, 0F, 2, 2, 11);
      TailPart1.setRotationPoint(1.5F, 7F, 6F);
      setRotation(TailPart1, -0.3346075F, 0F, 0F);
      TailPart2 = new ModelRenderer(this, 141, 0);
      TailPart2.addBox(-1F, -1F, 0F, 2, 2, 11);
      TailPart2.setRotationPoint(0F, -0.2F, 10.5F);
      setRotation(TailPart2, -0.3948578F, 0F, 0F);
      TailPart3 = new ModelRenderer(this, 168, 0);
      TailPart3.addBox(-1F, -1F, 0F, 2, 2, 11);
      TailPart3.setRotationPoint(0F, 0F, 10.8F);
      setRotation(TailPart3, 0.2974289F, 0F, 0F);
      LeftHumerus = new ModelRenderer(this, 39, 16);
      LeftHumerus.addBox(0F, 0F, 0F, 3, 10, 4);
      LeftHumerus.setRotationPoint(3F, 4.7F, -12F);
      setRotation(LeftHumerus, 0.3869765F, 0F, 0F);
      LeftRadius = new ModelRenderer(this, 71, 16);
      LeftRadius.addBox(0F, 0F, 0F, 3, 11, 4);
      LeftRadius.setRotationPoint(0F, 8.0F, 0.45F);
      setRotation(LeftRadius, -0.3869765F, 0F, 0F);
      LeftFClawRPart1 = new ModelRenderer(this, 0, 58);
      LeftFClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftFClawRPart1.setRotationPoint(0F, 9.7F, 0F);
      setRotation(LeftFClawRPart1, 0F, 0.5159687F, 0F);
      LeftFClawRPart2 = new ModelRenderer(this, 5, 58);
      LeftFClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftFClawRPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(LeftFClawRPart2, 1.16093F, 0.0259717F, 0F);
      LeftFClawMPart1 = new ModelRenderer(this, 0, 58);
      LeftFClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftFClawMPart1.setRotationPoint(1.5F, 9.7F, 0F);
      setRotation(LeftFClawMPart1, 0F, 0F, 0F);
      LeftFClawMPart2 = new ModelRenderer(this, 5, 58);
      LeftFClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftFClawMPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(LeftFClawMPart2, 1.16093F, 0F, 0F);
      LeftFClawLPart1 = new ModelRenderer(this, 0, 58);
      LeftFClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftFClawLPart1.setRotationPoint(3F, 9.7F, 0F);
      setRotation(LeftFClawLPart1, 0F, -0.5159717F, 0F);
      LeftFClawLPart2 = new ModelRenderer(this, 5, 58);
      LeftFClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftFClawLPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(LeftFClawLPart2, 1.16093F, -0.0059717F, 0F);
      RightHumerus = new ModelRenderer(this, 55, 16);
      RightHumerus.addBox(-3F, 0F, 0F, 3, 10, 4);
      RightHumerus.setRotationPoint(0F, 4.7F, -12F);
      setRotation(RightHumerus, 0.3869765F, 0F, 0F);
      RightRadius = new ModelRenderer(this, 71, 16);
      RightRadius.addBox(-3F, 0F, 0F, 3, 11, 4);
      RightRadius.setRotationPoint(0F, 8.0F, 0.45F);
      setRotation(RightRadius, -0.3869765F, 0F, 0F);
      RightFClawRPart1 = new ModelRenderer(this, 0, 58);
      RightFClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightFClawRPart1.setRotationPoint(-3F, 9.7F, 0F);
      setRotation(RightFClawRPart1, 0F, 0.5159687F, 0F);
      RightFClawRPart2 = new ModelRenderer(this, 5, 58);
      RightFClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightFClawRPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(RightFClawRPart2, 1.16093F, 0.0259717F, 0F);
      RightFClawMPart1 = new ModelRenderer(this, 0, 58);
      RightFClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightFClawMPart1.setRotationPoint(-1.5F, 9.7F, 0F);
      setRotation(RightFClawMPart1, 0F, 0F, 0F);
      RightFClawMPart2 = new ModelRenderer(this, 5, 58);
      RightFClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightFClawMPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(RightFClawMPart2, 1.16093F, 0F, 0F);
      RightFClawLPart1 = new ModelRenderer(this, 0, 58);
      RightFClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightFClawLPart1.setRotationPoint(0F, 9.7F, 0F);
      setRotation(RightFClawLPart1, 0F, -0.5159717F, 0F);
      RightFClawLPart2 = new ModelRenderer(this, 5, 58);
      RightFClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightFClawLPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(RightFClawLPart2, 1.16093F, -0.0059717F, 0F);
      LeftFemur = new ModelRenderer(this, 19, 16);
      LeftFemur.addBox(0F, 0F, 0F, 3, 8, 6);
      LeftFemur.setRotationPoint(3F, 5.7F, 0F);
      setRotation(LeftFemur, 0F, 0F, 0F);
      LeftTibia = new ModelRenderer(this, 0, 31);
      LeftTibia.addBox(0F, 0F, 0F, 3, 3, 9);
      LeftTibia.setRotationPoint(0F, 7.7F, 0F);
      setRotation(LeftTibia, 0F, 0F, 0F);
      LeftMetatarsus = new ModelRenderer(this, 0, 44);
      LeftMetatarsus.addBox(0F, 0F, 0F, 3, 10, 3);
      LeftMetatarsus.setRotationPoint(0F, -0.02F, 8F);
      setRotation(LeftMetatarsus, -0.1289922F, 0F, 0F);
      LeftClawRPart1 = new ModelRenderer(this, 0, 58);
      LeftClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftClawRPart1.setRotationPoint(0F, 9F, 0F);
      setRotation(LeftClawRPart1, 0F, 0.5159687F, 0F);
      LeftClawRPart2 = new ModelRenderer(this, 5, 58);
      LeftClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftClawRPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(LeftClawRPart2, 1.16093F, -0.0259717F, 0F);
      LeftClawMPart1 = new ModelRenderer(this, 0, 58);
      LeftClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftClawMPart1.setRotationPoint(1.5F, 9F, 0F);
      setRotation(LeftClawMPart1, 0F, 0F, 0F);
      LeftClawMPart2 = new ModelRenderer(this, 5, 58);
      LeftClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftClawMPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(LeftClawMPart2, 1.16093F, 0F, 0F);
      LeftClawLPart1 = new ModelRenderer(this, 0, 58);
      LeftClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftClawLPart1.setRotationPoint(3F, 9F, 0F);
      setRotation(LeftClawLPart1, 0F, -0.5159687F, 0F);
      LeftClawLPart2 = new ModelRenderer(this, 5, 58);
      LeftClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftClawLPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(LeftClawLPart2, 1.16093F, 0.0059717F, 0F);
      RightFemur = new ModelRenderer(this, 0, 16);
      RightFemur.addBox(-2F, 0F, 0F, 3, 8, 6);
      RightFemur.setRotationPoint(-1F, 5.7F, 0F);
      setRotation(RightFemur, 0F, 0F, 0F);
      RightTibia = new ModelRenderer(this, 0, 31);
      RightTibia.addBox(-2F, 0F, 0F, 3, 3, 9);
      RightTibia.setRotationPoint(0F, 7.7F, 0F);
      setRotation(RightTibia, 0F, 0F, 0F);
      RightMetatarsus = new ModelRenderer(this, 0, 44);
      RightMetatarsus.addBox(-2F, 0F, 0F, 3, 10, 3);
      RightMetatarsus.setRotationPoint(0F, -0.02F, 8F);
      setRotation(RightMetatarsus, -0.1289922F, 0F, 0F);
      RightClawRPart1 = new ModelRenderer(this, 0, 58);
      RightClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightClawRPart1.setRotationPoint(-3F, 9F, 0F);
      setRotation(RightClawRPart1, 0F, 0.5159687F, 0F);
      RightClawRPart2 = new ModelRenderer(this, 5, 58);
      RightClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightClawRPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(RightClawRPart2, 1.16093F, -0.0259717F, 0F);
      RightClawMPart1 = new ModelRenderer(this, 0, 58);
      RightClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightClawMPart1.setRotationPoint(-1.5F, 9F, 0F);
      setRotation(RightClawMPart1, 0F, 0F, 0F);
      RightClawMPart2 = new ModelRenderer(this, 5, 58);
      RightClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightClawMPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(RightClawMPart2, 1.16093F, 0F, 0F);
      RightClawLPart1 = new ModelRenderer(this, 0, 58);
      RightClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightClawLPart1.setRotationPoint(0F, 9F, 0F);
      setRotation(RightClawLPart1, 0F, -0.5159717F, 0F);
      RightClawLPart2 = new ModelRenderer(this, 5, 58);
      RightClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightClawLPart2.setRotationPoint(0F, 0F, 0F);
      setRotation(RightClawLPart2, 1.16093F, 0.0059717F, 0F);
      
      //Head\\
      this.Throat.addChild(TopJawCenter);
      this.Throat.addChild(BottomJawCenter);
      this.TopJawCenter.addChild(LeftEarPart1);
      this.TopJawCenter.addChild(RightEarPart1);
      this.TopJawCenter.addChild(TopJawPart1);
      this.TopJawCenter.addChild(TopJawPart2);
      this.TopJawCenter.addChild(LeftTopJaw);
      this.TopJawCenter.addChild(RightTopJaw);
      this.TopJawCenter.addChild(RightTopJaw);
      this.LeftTopJaw.addChild(LeftTopTeeth);
      this.RightTopJaw.addChild(RightTopTeeth);
      this.LeftEarPart1.addChild(LeftEarPart2);
      this.LeftEarPart2.addChild(LeftEarPart3);
      this.RightEarPart1.addChild(RightEarPart2);
      this.RightEarPart2.addChild(RightEarPart3);
      
      this.BottomJawCenter.addChild(BottomJawPart1);
      this.BottomJawCenter.addChild(BottomJawPart2);
      this.BottomJawCenter.addChild(LeftBottomJaw);
      this.BottomJawCenter.addChild(RightBottomJaw);
      this.LeftBottomJaw.addChild(LeftBottomTeeth);
      this.RightBottomJaw.addChild(RightBottomTeeth);
      
      //Torso\\
      this.MidSection.addChild(Pelvis);
      this.MidSection.addChild(UpSection);
      
      //Front Legs\\
      this.LeftHumerus.addChild(LeftRadius);
      this.LeftRadius.addChild(LeftFClawLPart1);
      this.LeftRadius.addChild(LeftFClawMPart1);
      this.LeftRadius.addChild(LeftFClawRPart1);
      this.LeftFClawLPart1.addChild(LeftFClawLPart2);
      this.LeftFClawMPart1.addChild(LeftFClawMPart2);
      this.LeftFClawRPart1.addChild(LeftFClawRPart2);
      this.RightHumerus.addChild(RightRadius);
      this.RightRadius.addChild(RightFClawLPart1);
      this.RightRadius.addChild(RightFClawMPart1);
      this.RightRadius.addChild(RightFClawRPart1);
      this.RightFClawLPart1.addChild(RightFClawLPart2);
      this.RightFClawMPart1.addChild(RightFClawMPart2);
      this.RightFClawRPart1.addChild(RightFClawRPart2);
      
      //Back Legs\\\
      this.LeftFemur.addChild(LeftTibia);
      this.LeftTibia.addChild(LeftMetatarsus);
      this.LeftMetatarsus.addChild(LeftClawLPart1);
      this.LeftMetatarsus.addChild(LeftClawMPart1);
      this.LeftMetatarsus.addChild(LeftClawRPart1);
      this.LeftClawLPart1.addChild(LeftClawLPart2);
      this.LeftClawMPart1.addChild(LeftClawMPart2);
      this.LeftClawRPart1.addChild(LeftClawRPart2);
      this.RightFemur.addChild(RightTibia);
      this.RightTibia.addChild(RightMetatarsus);
      this.RightMetatarsus.addChild(RightClawLPart1);
      this.RightMetatarsus.addChild(RightClawMPart1);
      this.RightMetatarsus.addChild(RightClawRPart1);
      this.RightClawLPart1.addChild(RightClawLPart2);
      this.RightClawMPart1.addChild(RightClawMPart2);
      this.RightClawRPart1.addChild(RightClawRPart2);
      
      //Tail\\
      this.TailPart1.addChild(TailPart2);
      this.TailPart2.addChild(TailPart3);
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
  {
    super.render(entity, f, f1, f2, f3, f4, f5);
    setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    Throat.render(f5);
    MidSection.render(f5);
    TailPart1.render(f5);
    LeftHumerus.render(f5);
    RightHumerus.render(f5);
    LeftFemur.render(f5);
    RightFemur.render(f5);
  }
  
  private void setRotation(ModelRenderer model, float x, float y, float z)
  {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
  }
  
  @Override
  public void setLivingAnimations(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4)
  {
  EntityZertumEntity entityzertum = (EntityZertumEntity)par1EntityLivingBase;
      float f11 = entityzertum.func_110201_q(par4);

          this.RightHumerus.rotateAngleX = 0.3869765F + MathHelper.cos(par2 * 0.6662F) * 1.4F * par3;
          this.LeftHumerus.rotateAngleX = 0.3869765F + MathHelper.cos(par2 * 0.6662F + (float)Math.PI) * 1.4F * par3;
          this.RightFemur.rotateAngleX = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3;
          this.LeftFemur.rotateAngleX =  MathHelper.cos(par2 * 0.6662F + (float)Math.PI) * 1.4F * par3;
          
          this.TopJawCenter.rotateAngleX = 0.0587144F - 0.45707964F * f11;
          this.BottomJawCenter.rotateAngleX = 0.1587144F + 0.45707964F * f11;
  }
  
  @Override
  public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6, Entity par7Entity)
  {
    super.setRotationAngles(par1, par2, par3, par4, par5, par6, par7Entity);
  }

}

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

While the built-in mobs tend to use a lot of trigonometry for their animations, it can hurt your head trying to do the same with your own custom animations, and really things like the sin and cos functions only work for "swinging" type animations.

 

Instead I've come up with an approach that is more like what real animators (like in a movie or video game will do) -- basically you figure out the set of angles (and positions if needed, like if you have orbs flying around) you might need in advance and then step through them as the animation progresses. 

 

I have a tutorial on this here: http://jabelarminecraft.blogspot.com/p/introduction-first-of-all-to-understand.html

 

Once you understand this technique, you can just draw your animation on a piece of paper, estimate the angles and put them in the array.  You also need a field that triggers the animation.  But it is pretty simple.  I've achieved things like an elephant rearing up, an eagle flapping its wings, a python with a snake-like movement, all using this.  No trigonometry required (except guessing angles).

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

Question about this:

 

protected int cycleIndex = 0;
protected float[][] undulationCycle = new float[][]
{
    {  45F, -45F, -45F,   0F,  45F,  45F,   0F, -45F },
    {   0F,  45F, -45F, -45F,   0F,  45F,  45F,   0F },
    { -45F,  90F,   0F, -45F, -45F,   0F,  45F,  45F },
    { -45F,  45F,  45F,   0F, -45F, -45F,   0F,  45F },
    {   0F, -45F,  45F,  45F,   0F, -45F, -45F,   0F },
    {  45F, -90F,   0F,  45F,  45F,   0F, -45F, -45F },
};

 

So that is the animation array correct?

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

Is there a way to cycle between the animations, like to have one animation for walking and one for sprinting?

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

Yes, that is an animation array, suitable for my animation.  You can have as many arrays as you want and then just switch them based on a field in your entity.  So yes you can have sprinting, or whatever.  For example, my elephant only rears up when I set an isRearing boolean in my entity AI code.

 

The only trick is that the model is processed on the client, but the entity state usually comes from the server.  So you need to make sure you're syncing the value on client with the server using a packet.

 

For sprinting you could also just cycle through the same walking animation but do it faster -- just increment the counter faster.  But again, to know if you're sprinting or walking needs a field synced to server.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

Note you can make the array however makes sense for your animation.  The point is that you can get the values for the rotations (and positions if necessary) for each part of your model but simply stepping through the rows of the array.

 

But if you have more or less model parts than I do, then your array will have different number of columns and if your animation has more or less steps to it you'll have a different number of rows.

 

Anyway, the whole point is forget hurting your brain over sin and cos trigonometry, it is faster and ultimately more controllable to simple set the rotations as you wish, and an array makes it easy to step through those values.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

Oh, I forgot to ask, is it possible to add the animation rotations without messing with the default rotations of my model? For instance, the legs of my creature are angled, so I want them to move but without missing up these angles.

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

I have come up with a method to achieve that but it isnt the best approach and i use it for 1.7.10 not sure how it has changed in 1.8 since i havent updated but you could try it out. This method works to keep your initial rotation angles from being messed up when adding child/parent piece relationships.

 

[NOT A COMPLETE CLASS] - lets say you have a model with two pieces one piece you want to be the parent and the other you want to be the child (example below)

 

 

public class ModelExample extends ModelBase
{
ModifiedModelRenderer modelHand_ChildPiece;

ModifiedModelRenderer modelHand_ParentPiece;

     
      modelHand_ChildPiece = new ModifiedModelRenderer(this, 0, 0);
      modelHand_ChildPiece.addBox(-0.75F, 2F, -0.75F, 1, 3, 1);
      modelHand_ChildPiece.setRotationPoint( -2F, 14.5F, -3.5F); //lets say your original rotation point of your child piece is this
      modelHand_ChildPiece.setTextureSize(128, 64);
      modelHand_ChildPiece.mirror = true;
      setRotation( modelHand_ChildPiece, -0.785398F, 0F, 0.785398F); //lets say your original rotation of your child piece is this and you want this preserved

      modelHand_ParentPiece = new ModifiedModelRenderer(this, 0, 0);
      modelHand_ParentPiece.addBox(-1F, -0.7F, -1F, 2, 4, 2);
      modelHand_ParentPiece.setRotationPoint( -2F, 13.5F, -1.5F);//lets say your original rotation point of your parent piece is this
      modelHand_ParentPiece.setTextureSize(128, 64);
      modelHand_ParentPiece.mirror = true;
      setRotation(modelHand_ParentPiece, -0.785398F, 0F, 0.785398F);//lets say your original rotation of your parent piece is this and you want this preserved

 

 

This is the method I use to add the child/parent relationship but if you use it directly (ie if you make ur desired parent the parent of your child) and if your parent has rotations other than 0 then your original rotations will be messed up upon setting up the parent/child relationship (as you already know).

 

 

/*
 * Same as addChild(), but subtracts the parent's rotation point from its own before adding it
 */
public void addChildTechne(ModifiedModelRenderer child){
	//correct the rotation point of the child by subtracting the rotation point of the parent
	child.rotationPointX -= this.rotationPointX;
	child.rotationPointY -= this.rotationPointY;
	child.rotationPointZ -= this.rotationPointZ;
	 super.addChild(child);
}

 

 

I solve the porblem in the following way:

 

1: create a dummy rotation model piece without a box

2: set the rotation point of this dummy piece to be the same as that of the piece you want to be the parent

3: make the dummy piece the parent of your child piece and make the dummy piece the parent of your desired parent piece

3: VOILA - the original rotations are preserved and you can set up the control you need using a parent/child piece setup

 

 

public class ModelExample extends ModelBase
{
ModifiedModelRenderer modelHand_ChildPiece;

ModifiedModelRenderer modelHand_ParentPiece;

ModifiedModelRenderer dummyPiece;


     
      modelHand_ChildPiece = new ModifiedModelRenderer(this, 0, 0);
      modelHand_ChildPiece.addBox(-0.75F, 2F, -0.75F, 1, 3, 1);
      modelHand_ChildPiece.setRotationPoint( -2F, 14.5F, -3.5F); //lets say your original rotation point of your child piece is this
      modelHand_ChildPiece.setTextureSize(128, 64);
      modelHand_ChildPiece.mirror = true;
      setRotation( modelHand_ChildPiece, -0.785398F, 0F, 0.785398F); //lets say your original rotation of your child piece is this and you want this preserved

      modelHand_ParentPiece = new ModifiedModelRenderer(this, 0, 0);
      modelHand_ParentPiece.addBox(-1F, -0.7F, -1F, 2, 4, 2);
      modelHand_ParentPiece.setRotationPoint( -2F, 13.5F, -1.5F);//lets say your original rotation point of your parent piece is this
      modelHand_ParentPiece.setTextureSize(128, 64);
      modelHand_ParentPiece.mirror = true;
      setRotation(modelHand_ParentPiece, -0.785398F, 0F, 0.785398F);//lets say your original rotation of your parent piece is this and you want this preserved

      dummyPiece = new ModifiedModelRenderer(this, "dummyPiece");
      dummyPiece.setRotationPoint( -2F, 13.5F, -1.5F);//MAKE THIS THE SAME AS YOUR -> modelHand_ParentPiece.setRotationPoint
      setRotation(dummyPiece, 0F, 0F, 0F);//has to be 0 initially otherwise your rotations will be messed up for some reason
      dummyPiece.addChildTechne(modelHand_ParentPiece); //MAKE THE dummyPiece THE PARENT INSTEAD OF BOTH YOUR DESIRED PARENT AND THE CHILD
      dummyPiece.addChildTechne(modelHand_ChildPiece);  //MAKE THE dummyPiece THE PARENT...

 

 

 

Posted

oh that is my custom model renderer class where i added customized methods you can use the default Model Renderer your using and modify my child method to work with ur model renderer I created my own renderer to add customized methods

Posted

Oh wait! I just realized something. I already had a thing where when I was using the vanilla animation coding, I added my model's default angles to it, which left the model's angles unaffected by the math stuff

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

ok but if you dont want to have to do any of that then just add a method similar to the one I use to create your child/parent piece relationships (cause that method fixes rotation point math) and then use the technique I described below that to keep your angles unaltered by any math. It works pretty well (at least for all angles which is what you want) but it can get tedious if ur models have alot of parent pieces.

Posted

While the built-in mobs tend to use a lot of trigonometry for their animations, it can hurt your head trying to do the same with your own custom animations, and really things like the sin and cos functions only work for "swinging" type animations.

 

Instead I've come up with an approach that is more like what real animators (like in a movie or video game will do) -- basically you figure out the set of angles (and positions if needed, like if you have orbs flying around) you might need in advance and then step through them as the animation progresses. 

 

I have a tutorial on this here: http://jabelarminecraft.blogspot.com/p/introduction-first-of-all-to-understand.html

 

Once you understand this technique, you can just draw your animation on a piece of paper, estimate the angles and put them in the array.  You also need a field that triggers the animation.  But it is pretty simple.  I've achieved things like an elephant rearing up, an eagle flapping its wings, a python with a snake-like movement, all using this.  No trigonometry required (except guessing angles).

 

Ok so, I created the cycle but I want it to be smoother like with the trigonometry methods. Here is the code so far:

 

package common.zeroquest.client.renderer.entity.model;

import common.zeroquest.entity.EntityZertumEntity;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.MathHelper;

public class ModelZertum extends ModelBase
{
  //fields
    ModelRenderer Throat;
    ModelRenderer UpSection;
    ModelRenderer MidSection;
    ModelRenderer Pelvis;
    ModelRenderer TailPart1;
    ModelRenderer TailPart2;
    ModelRenderer TailPart3;
    ModelRenderer LeftHumerus;
    ModelRenderer LeftRadius;
    ModelRenderer LeftFClawRPart1;
    ModelRenderer LeftFClawRPart2;
    ModelRenderer LeftFClawMPart1;
    ModelRenderer LeftFClawMPart2;
    ModelRenderer LeftFClawLPart1;
    ModelRenderer LeftFClawLPart2;
    ModelRenderer RightHumerus;
    ModelRenderer RightRadius;
    ModelRenderer RightFClawRPart1;
    ModelRenderer RightFClawRPart2;
    ModelRenderer RightFClawMPart1;
    ModelRenderer RightFClawMPart2;
    ModelRenderer RightFClawLPart1;
    ModelRenderer RightFClawLPart2;
    ModelRenderer LeftFemur;
    ModelRenderer LeftTibia;
    ModelRenderer LeftMetatarsus;
    ModelRenderer LeftClawRPart1;
    ModelRenderer LeftClawRPart2;
    ModelRenderer LeftClawLPart1;
    ModelRenderer LeftClawLPart2;
    ModelRenderer LeftClawMPart1;
    ModelRenderer LeftClawMPart2;
    ModelRenderer RightFemur;
    ModelRenderer RightTibia;
    ModelRenderer RightMetatarsus;
    ModelRenderer RightClawRPart1;
    ModelRenderer RightClawRPart2;
    ModelRenderer RightClawMPart1;
    ModelRenderer RightClawMPart2;
    ModelRenderer RightClawLPart1;
    ModelRenderer RightClawLPart2;
    ModelRenderer RightEarPart1;
    ModelRenderer LeftBottomJaw;
    ModelRenderer RightEarPart2;
    ModelRenderer BottomJawPart1;
    ModelRenderer RightEarPart3;
    ModelRenderer BottomJawPart2;
    ModelRenderer LeftEarPart1;
    ModelRenderer BottomJawCenter;
    ModelRenderer LeftEarPart2;
    ModelRenderer LeftTopTeeth;
    ModelRenderer LeftEarPart3;
    ModelRenderer LeftTopJaw;
    ModelRenderer LeftBottomTeeth;
    ModelRenderer RightTopTeeth;
    ModelRenderer RightBottomTeeth;
    ModelRenderer TopJawPart1;
    ModelRenderer TopJawPart2;
    ModelRenderer TopJawCenter;
    ModelRenderer RightTopJaw;
    ModelRenderer RightBottomJaw;
    
    // create an animation cycle
    // for movement based animations you need to measure distance moved
    // and perform number of cycles per block distance moved.
    protected double distanceMovedTotal = 0.0D;
    // don't make this too large or animations will be skipped

    protected static final double CYCLES_PER_BLOCK = 0.5D; 
    protected int cycleIndex = 0;
    protected float[][] undulationCycle = new float[][]
    {
        { 0F, 5F, 10F, 0F, -5F, -10F, 0, 5F, 10F, 0F},
        { 0F, 45F, -45F, -45F, 0F, 45F, 45F, 0F },
        { -45F, 90F, 0F, -45F, -45F, 0F, 45F, 45F },
        { -45F, 45F, 45F, 0F, -45F, -45F, 0F, 45F },
        { 0F, -45F, 45F, 45F, 0F, -45F, -45F, 0F },
        { 45F, -90F, 0F, 45F, 45F, 0F, -45F, -45F },
    };
  
  public ModelZertum()
  {
    textureWidth = 256;
    textureHeight = 128;
    
    //Ears\\
    RightEarPart1 = new ModelRenderer(this, 18, 60);
    RightEarPart1.addBox(-1F, -1F, -1F, 1, 1, 4);
    RightEarPart1.setRotationPoint(-1.5F, 1.5F, -5F);
    RightEarPart1.setTextureSize(256, 128);
    setRotation(RightEarPart1, 0.0346075F, -0.3346075F, 0F);
    RightEarPart2 = new ModelRenderer(this, 15, 66);
    RightEarPart2.addBox(-1F, -1F, 0F, 2, 2, 6);
    RightEarPart2.setRotationPoint(-0.5F, -0.5F, 0F);
    RightEarPart2.setTextureSize(256, 128);
    setRotation(RightEarPart2, 0.3346075F, -0.0346075F, 0F);
    RightEarPart3 = new ModelRenderer(this, 16, 75);
    RightEarPart3.addBox(-0.5F, -0.5F, 0F, 1, 1, 6);
    RightEarPart3.setRotationPoint(-0.5F, 0F, 4F);
    RightEarPart3.setTextureSize(256, 128);
    setRotation(RightEarPart3, 0.0346075F, 0.4115358F, 0.0743572F);
    LeftEarPart1 = new ModelRenderer(this, 18, 60);
    LeftEarPart1.addBox(-1F, -1F, -1F, 1, 1, 4);
    LeftEarPart1.setRotationPoint(3.5F, 1.5F, -5F);
    LeftEarPart1.setTextureSize(256, 128);
    setRotation(LeftEarPart1, 0.3346075F, 0.3346145F, 0F);
    LeftEarPart2 = new ModelRenderer(this, 15, 66);
    LeftEarPart2.addBox(-1F, -1F, 0F, 2, 2, 6);
    LeftEarPart2.setRotationPoint(-0.5F, -0.5F, 0F);
    LeftEarPart2.setTextureSize(256, 128);
    setRotation(LeftEarPart2, 0.0346075F, 0.0346145F, 0F);
    LeftEarPart3 = new ModelRenderer(this, 16, 75);
    LeftEarPart3.addBox(-0.5F, -0.5F, 0F, 1, 1, 6);
    LeftEarPart3.setRotationPoint(0.5F, 0F, 4F);
    LeftEarPart3.setTextureSize(256, 128);
    setRotation(LeftEarPart3, 0.0346145F, -0.411544F, -0.074351F);
    
      Throat = new ModelRenderer(this, 0, 0);
      Throat.addBox(-2F, -3F, -9F, 6, 5, 6);
      Throat.setRotationPoint(-0.5F, 7.7F, -11F);
      Throat.setTextureOffset(256, 128);
      setRotation(Throat, -0.2288904F, 0F, 0F);
      UpSection = new ModelRenderer(this, 25, 0);
      UpSection.addBox(-2F, -2.5F, -9F, 7, 7, ;
      UpSection.setRotationPoint(0F, -0.5F, 2F);
      UpSection.setTextureOffset(256, 128);
      setRotation(UpSection, -0.1917118F, 0F, 0F);
      MidSection = new ModelRenderer(this, 56, 0);
      MidSection.addBox(-2F, -2.5F, 0F, 6, 6, 9);
      MidSection.setRotationPoint(-1F, 7.5F, -8F);
      MidSection.setTextureOffset(256, 128);
      setRotation(MidSection, -0.0429974F, 0F, 0F);
      Pelvis = new ModelRenderer(this, 87, 0);
      Pelvis.addBox(-2F, -2.5F, 0F, 6, 6, 7);
      Pelvis.setRotationPoint(0F, 0F, 8F);
      Pelvis.setTextureOffset(256, 128);
      setRotation(Pelvis, 0F, 0F, 0F);
      TailPart1 = new ModelRenderer(this, 114, 0);
      TailPart1.addBox(-1F, -1F, 0F, 2, 2, 11);
      TailPart1.setRotationPoint(0F, 7F, 6F);
      TailPart1.setTextureOffset(256, 128);
      setRotation(TailPart1, -0.3346075F, 0F, 0F);
      TailPart2 = new ModelRenderer(this, 141, 0);
      TailPart2.addBox(-1F, -1F, 0F, 2, 2, 11);
      TailPart2.setRotationPoint(0F, -0.2F, 10F);
      TailPart2.setTextureSize(256, 128);
      setRotation(TailPart2, -0.3948578F, 0F, 0F);
      TailPart3 = new ModelRenderer(this, 168, 0);
      TailPart3.addBox(-1F, -1F, 0F, 2, 2, 11);
      TailPart3.setRotationPoint(0F, 0F, 10.8F);
      TailPart3.setTextureSize(256, 128);
      setRotation(TailPart3, 0.2974289F, 0F, 0F);
      
      LeftHumerus = new ModelRenderer(this, 39, 16);
      LeftHumerus.addBox(0F, 0F, 0F, 3, 10, 4);
      LeftHumerus.setRotationPoint(1.5F, 4.7F, -12F);
      LeftHumerus.setTextureSize(256, 128);
      setRotation(LeftHumerus, 0.3869765F, 0F, 0F);
      LeftRadius = new ModelRenderer(this, 71, 16);
      LeftRadius.addBox(0F, 0F, 0F, 3, 11, 4);
      LeftRadius.setRotationPoint(0F, 8.0F, 0.45F);
      LeftRadius.setTextureSize(256, 128);
      setRotation(LeftRadius, -0.3869765F, 0F, 0F);
      LeftFClawRPart1 = new ModelRenderer(this, 0, 58);
      LeftFClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftFClawRPart1.setRotationPoint(0F, 9.7F, 0F);
      LeftFClawRPart1.setTextureSize(256, 128);
      setRotation(LeftFClawRPart1, 0F, 0.5159687F, 0F);
      LeftFClawRPart2 = new ModelRenderer(this, 5, 58);
      LeftFClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftFClawRPart2.setRotationPoint(0F, 0F, 0F);
      LeftFClawRPart2.setTextureSize(256, 128);
      setRotation(LeftFClawRPart2, 1.16093F, 0.0259717F, 0F);
      LeftFClawMPart1 = new ModelRenderer(this, 0, 58);
      LeftFClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftFClawMPart1.setRotationPoint(1.5F, 9.7F, 0F);
      LeftFClawMPart1.setTextureSize(256, 128);
      setRotation(LeftFClawMPart1, 0F, 0F, 0F);
      LeftFClawMPart2 = new ModelRenderer(this, 5, 58);
      LeftFClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftFClawMPart2.setRotationPoint(0F, 0F, 0F);
      LeftFClawMPart2.setTextureSize(256, 128);
      setRotation(LeftFClawMPart2, 1.16093F, 0F, 0F);
      LeftFClawLPart1 = new ModelRenderer(this, 0, 58);
      LeftFClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftFClawLPart1.setRotationPoint(3F, 9.7F, 0F);
      LeftFClawLPart1.setTextureSize(256, 128);
      setRotation(LeftFClawLPart1, 0F, -0.5159717F, 0F);
      LeftFClawLPart2 = new ModelRenderer(this, 5, 58);
      LeftFClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftFClawLPart2.setRotationPoint(0F, 0F, 0F);
      LeftFClawLPart2.setTextureSize(256, 128);
      setRotation(LeftFClawLPart2, 1.16093F, -0.0059717F, 0F);
      
      RightHumerus = new ModelRenderer(this, 55, 16);
      RightHumerus.addBox(-3F, 0F, 0F, 3, 10, 4);
      RightHumerus.setRotationPoint(-1.5F, 4.7F, -12F);
      RightHumerus.setTextureSize(256, 128);
      setRotation(RightHumerus, 0.3869765F, 0F, 0F);
      RightRadius = new ModelRenderer(this, 71, 16);
      RightRadius.addBox(-3F, 0F, 0F, 3, 11, 4);
      RightRadius.setRotationPoint(0F, 8.0F, 0.45F);
      RightRadius.setTextureSize(256, 128);
      setRotation(RightRadius, -0.3869765F, 0F, 0F);
      RightFClawRPart1 = new ModelRenderer(this, 0, 58);
      RightFClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightFClawRPart1.setRotationPoint(-3F, 9.7F, 0F);
      RightFClawRPart1.setTextureSize(256, 128);
      setRotation(RightFClawRPart1, 0F, 0.5159687F, 0F);
      RightFClawRPart2 = new ModelRenderer(this, 5, 58);
      RightFClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightFClawRPart2.setRotationPoint(0F, 0F, 0F);
      RightFClawRPart2.setTextureSize(256, 128);
      setRotation(RightFClawRPart2, 1.16093F, 0.0259717F, 0F);
      RightFClawMPart1 = new ModelRenderer(this, 0, 58);
      RightFClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightFClawMPart1.setRotationPoint(-1.5F, 9.7F, 0F);
      RightFClawMPart1.setTextureSize(256, 128);
      setRotation(RightFClawMPart1, 0F, 0F, 0F);
      RightFClawMPart2 = new ModelRenderer(this, 5, 58);
      RightFClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightFClawMPart2.setRotationPoint(0F, 0F, 0F);
      RightFClawMPart2.setTextureSize(256, 128);
      setRotation(RightFClawMPart2, 1.16093F, 0F, 0F);
      RightFClawLPart1 = new ModelRenderer(this, 0, 58);
      RightFClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightFClawLPart1.setRotationPoint(0F, 9.7F, 0F);
      RightFClawLPart1.setTextureSize(256, 128);
      setRotation(RightFClawLPart1, 0F, -0.5159717F, 0F);
      RightFClawLPart2 = new ModelRenderer(this, 5, 58);
      RightFClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightFClawLPart2.setRotationPoint(0F, 0F, 0F);
      RightFClawLPart2.setTextureSize(256, 128);
      setRotation(RightFClawLPart2, 1.16093F, -0.0059717F, 0F);
      
      LeftFemur = new ModelRenderer(this, 19, 16);
      LeftFemur.addBox(0F, 0F, 0F, 3, 8, 6);
      LeftFemur.setRotationPoint(1.5F, 5.7F, 0F);
      LeftFemur.setTextureSize(256, 128);
      setRotation(LeftFemur, 0F, 0F, 0F);
      LeftTibia = new ModelRenderer(this, 0, 31);
      LeftTibia.addBox(0F, 0F, 0F, 3, 3, 9);
      LeftTibia.setRotationPoint(0F, 7.7F, 0F);
      LeftTibia.setTextureSize(256, 128);
      setRotation(LeftTibia, 0F, 0F, 0F);
      LeftMetatarsus = new ModelRenderer(this, 0, 44);
      LeftMetatarsus.addBox(0F, 0F, 0F, 3, 10, 3);
      LeftMetatarsus.setRotationPoint(0F, -0.02F, 8F);
      LeftMetatarsus.setTextureSize(256, 128);
      setRotation(LeftMetatarsus, -0.1289922F, 0F, 0F);
      LeftClawRPart1 = new ModelRenderer(this, 0, 58);
      LeftClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftClawRPart1.setRotationPoint(0F, 9F, 0F);
      LeftClawRPart1.setTextureSize(256, 128);
      setRotation(LeftClawRPart1, 0F, 0.5159687F, 0F);
      LeftClawRPart2 = new ModelRenderer(this, 5, 58);
      LeftClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftClawRPart2.setRotationPoint(0F, 0F, 0F);
      LeftClawRPart2.setTextureSize(256, 128);
      setRotation(LeftClawRPart2, 1.16093F, -0.0259717F, 0F);
      LeftClawMPart1 = new ModelRenderer(this, 0, 58);
      LeftClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftClawMPart1.setRotationPoint(1.5F, 9F, 0F);
      LeftClawMPart1.setTextureSize(256, 128);
      setRotation(LeftClawMPart1, 0F, 0F, 0F);
      LeftClawMPart2 = new ModelRenderer(this, 5, 58);
      LeftClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftClawMPart2.setRotationPoint(0F, 0F, 0F);
      LeftClawMPart2.setTextureSize(256, 128);
      setRotation(LeftClawMPart2, 1.16093F, 0F, 0F);
      LeftClawLPart1 = new ModelRenderer(this, 0, 58);
      LeftClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      LeftClawLPart1.setRotationPoint(3F, 9F, 0F);
      LeftClawLPart1.setTextureSize(256, 128);
      setRotation(LeftClawLPart1, 0F, -0.5159717F, 0F);
      LeftClawLPart2 = new ModelRenderer(this, 5, 58);
      LeftClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      LeftClawLPart2.setRotationPoint(0F, 0F, 0F);
      LeftClawLPart2.setTextureSize(256, 128);
      setRotation(LeftClawLPart2, 1.16093F, 0.0059717F, 0F);
      
      RightFemur = new ModelRenderer(this, 0, 16);
      RightFemur.addBox(-2F, 0F, 0F, 3, 8, 6);
      RightFemur.setRotationPoint(-2.5F, 5.7F, 0F);
      RightFemur.setTextureSize(256, 128);
      setRotation(RightFemur, 0F, 0F, 0F);
      RightTibia = new ModelRenderer(this, 0, 31);
      RightTibia.addBox(-2F, 0F, 0F, 3, 3, 9);
      RightTibia.setRotationPoint(0F, 7.7F, 0F);
      RightTibia.setTextureSize(256, 128);
      setRotation(RightTibia, 0F, 0F, 0F);
      RightMetatarsus = new ModelRenderer(this, 0, 44);
      RightMetatarsus.addBox(-2F, 0F, 0F, 3, 10, 3);
      RightMetatarsus.setRotationPoint(0F, -0.02F, 8F);
      RightMetatarsus.setTextureSize(256, 128);
      setRotation(RightMetatarsus, -0.1289922F, 0F, 0F);
      RightClawRPart1 = new ModelRenderer(this, 0, 58);
      RightClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightClawRPart1.setRotationPoint(-2F, 9F, 0F);
      RightClawRPart1.setTextureSize(256, 128);
      setRotation(RightClawRPart1, 0F, 0.5159687F, 0F);
      RightClawRPart2 = new ModelRenderer(this, 5, 58);
      RightClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightClawRPart2.setRotationPoint(0F, 0F, 0F);
      RightClawRPart2.setTextureSize(256, 128);
      setRotation(RightClawRPart2, 1.16093F, -0.0259717F, 0F);
      RightClawMPart1 = new ModelRenderer(this, 0, 58);
      RightClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightClawMPart1.setRotationPoint(-0.5F, 9F, 0F);
      RightClawMPart1.setTextureSize(256, 128);
      setRotation(RightClawMPart1, 0F, 0F, 0F);
      RightClawMPart2 = new ModelRenderer(this, 5, 58);
      RightClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightClawMPart2.setRotationPoint(0F, 0F, 0F);
      RightClawMPart2.setTextureSize(256, 128);
      setRotation(RightClawMPart2, 1.16093F, 0F, 0F);
      RightClawLPart1 = new ModelRenderer(this, 0, 58);
      RightClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
      RightClawLPart1.setRotationPoint(1F, 9F, 0F);
      RightClawLPart1.setTextureSize(256, 128);
      setRotation(RightClawLPart1, 0F, -0.5159717F, 0F);
      RightClawLPart2 = new ModelRenderer(this, 5, 58);
      RightClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
      RightClawLPart2.setRotationPoint(0F, 0F, 0F);
      RightClawLPart2.setTextureSize(256, 128);
      setRotation(RightClawLPart2, 1.16093F, 0.0059717F, 0F);
      
      //Top Jaw\\
      TopJawCenter = new ModelRenderer(this, 56, 38);
      TopJawCenter.addBox(-0.5F, 0F, -7.4F, 2, 1, ;
      TopJawCenter.setRotationPoint(0F, -2.5F, -9F);
      setRotation(TopJawCenter, 0.2288904F, 0F, 0F);
      LeftTopJaw = new ModelRenderer(this, 39, 50);
      LeftTopJaw.addBox(0F, 0F, -9F, 1, 2, 9);
      LeftTopJaw.setRotationPoint(3F, 0F, 0F);
      setRotation(LeftTopJaw, 0F, 0.3346075F, 0F);
      LeftTopTeeth = new ModelRenderer(this, 61, 50);
      LeftTopTeeth.addBox(0.5F, 0F, -9.3F, 0, 1, 5);
      LeftTopTeeth.setRotationPoint(0F, 2F, 0F);
      setRotation(LeftTopTeeth, 0F, -0.0346145F, 0F);
      RightTopJaw = new ModelRenderer(this, 39, 63);
      RightTopJaw.addBox(-1F, 0F, -9F, 1, 2, 9);
      RightTopJaw.setRotationPoint(-2F, 0F, 0F);
      setRotation(RightTopJaw, 0F, -0.3346075F, 0F);
      RightTopTeeth = new ModelRenderer(this, 61, 50);
      RightTopTeeth.addBox(-0.5F, 0F, -9.3F, 0, 1, 5);
      RightTopTeeth.setRotationPoint(0F, 2F, 0F);
      setRotation(RightTopTeeth, 0F, 0.0346075F, 0F);
      TopJawPart1 = new ModelRenderer(this, 38, 40);
      TopJawPart1.addBox(-1F, 0F, -5.7F, 2, 1, 6);
      TopJawPart1.setRotationPoint(-1F, 0F, 0F);
      setRotation(TopJawPart1, 0F, -0.3346075F, 0F);
      TopJawPart2 = new ModelRenderer(this, 38, 40);
      TopJawPart2.addBox(-1F, 0F, -5.7F, 2, 1, 6);
      TopJawPart2.setRotationPoint(2F, 0F, 0F);
      setRotation(TopJawPart2, 0F, 0.3346145F, 0F);
      
      //BottomJaw\\
      BottomJawCenter = new ModelRenderer(this, 0, 109);
      BottomJawCenter.addBox(-0.5F, 0F, -7.2F, 2, 1, ;
      BottomJawCenter.setRotationPoint(0F, 1.5F, -8F);
      setRotation(BottomJawCenter, 0.2288904F, 0F, 0F);
      LeftBottomJaw = new ModelRenderer(this, 0, 84);
      LeftBottomJaw.addBox(0F, 0F, -9F, 1, 2, 9);
      LeftBottomJaw.setRotationPoint(3F, -1.1F, 0F);
      setRotation(LeftBottomJaw, 0F, 0.3346075F, 0F);
      LeftBottomTeeth = new ModelRenderer(this, 21, 93);
      LeftBottomTeeth.addBox(0.5F, 0F, -9.3F, 0, 1, 5);
      LeftBottomTeeth.setRotationPoint(0.5F, -1.2F, 0F);
      setRotation(LeftBottomTeeth, 0, 0.0346145F, 0F);
      RightBottomJaw = new ModelRenderer(this, 0, 97);
      RightBottomJaw.addBox(-1F, 0F, -9F, 1, 2, 9);
      RightBottomJaw.setRotationPoint(-2F, -1.1F, 0F);
      setRotation(RightBottomJaw, 0, -0.3346075F, 0F);
      RightBottomTeeth = new ModelRenderer(this, 21, 93);
      RightBottomTeeth.addBox(-0.5F, 0F, -9.3F, 0, 1, 5);
      RightBottomTeeth.setRotationPoint(-0.5F,-1.2F, 0F);
      setRotation(RightBottomTeeth, 0, -0.0346075F, 0F);
      BottomJawPart1 = new ModelRenderer(this, 21, 84);
      BottomJawPart1.addBox(-1F, 0F, -6.5F, 2, 1, 7);
      BottomJawPart1.setRotationPoint(-1F, 0F, 0F);
      setRotation(BottomJawPart1, 0, -0.3346075F, 0F);
      BottomJawPart2 = new ModelRenderer(this, 21, 84);
      BottomJawPart2.addBox(-1F, 0F, -6.5F, 2, 1, 7);
      BottomJawPart2.setRotationPoint(2F, 0F, 0F);
      setRotation(BottomJawPart2, 0, 0.3346075F, 0F);
      
      //Head\\
      this.Throat.addChild(TopJawCenter);
      this.Throat.addChild(BottomJawCenter);
      this.TopJawCenter.addChild(LeftEarPart1);
      this.TopJawCenter.addChild(RightEarPart1);
      this.TopJawCenter.addChild(TopJawPart1);
      this.TopJawCenter.addChild(TopJawPart2);
      this.TopJawCenter.addChild(LeftTopJaw);
      this.TopJawCenter.addChild(RightTopJaw);
      this.LeftTopJaw.addChild(LeftTopTeeth);
      this.RightTopJaw.addChild(RightTopTeeth);
      this.LeftEarPart1.addChild(LeftEarPart2);
      this.LeftEarPart2.addChild(LeftEarPart3);
      this.BottomJawCenter.addChild(BottomJawPart1);
      this.BottomJawCenter.addChild(BottomJawPart2);
      this.BottomJawCenter.addChild(LeftBottomJaw);
      this.BottomJawCenter.addChild(RightBottomJaw);
      this.LeftBottomJaw.addChild(LeftBottomTeeth);
      this.RightBottomJaw.addChild(RightBottomTeeth);
      this.RightEarPart1.addChild(RightEarPart2);
      this.RightEarPart2.addChild(RightEarPart3);
      
      //Torso\\
      this.MidSection.addChild(Pelvis);
      this.MidSection.addChild(UpSection);
      
      //Front Legs\\
      this.LeftHumerus.addChild(LeftRadius);
      this.LeftRadius.addChild(LeftFClawLPart1);
      this.LeftRadius.addChild(LeftFClawMPart1);
      this.LeftRadius.addChild(LeftFClawRPart1);
      this.LeftFClawLPart1.addChild(LeftFClawLPart2);
      this.LeftFClawMPart1.addChild(LeftFClawMPart2);
      this.LeftFClawRPart1.addChild(LeftFClawRPart2);
      this.RightHumerus.addChild(RightRadius);
      this.RightRadius.addChild(RightFClawLPart1);
      this.RightRadius.addChild(RightFClawMPart1);
      this.RightRadius.addChild(RightFClawRPart1);
      this.RightFClawLPart1.addChild(RightFClawLPart2);
      this.RightFClawMPart1.addChild(RightFClawMPart2);
      this.RightFClawRPart1.addChild(RightFClawRPart2);
      
      //Back Legs\\\
      this.LeftFemur.addChild(LeftTibia);
      this.LeftTibia.addChild(LeftMetatarsus);
      this.LeftMetatarsus.addChild(LeftClawLPart1);
      this.LeftMetatarsus.addChild(LeftClawMPart1);
      this.LeftMetatarsus.addChild(LeftClawRPart1);
      this.LeftClawLPart1.addChild(LeftClawLPart2);
      this.LeftClawMPart1.addChild(LeftClawMPart2);
      this.LeftClawRPart1.addChild(LeftClawRPart2);
      this.RightFemur.addChild(RightTibia);
      this.RightTibia.addChild(RightMetatarsus);
      this.RightMetatarsus.addChild(RightClawLPart1);
      this.RightMetatarsus.addChild(RightClawMPart1);
      this.RightMetatarsus.addChild(RightClawRPart1);
      this.RightClawLPart1.addChild(RightClawLPart2);
      this.RightClawMPart1.addChild(RightClawMPart2);
      this.RightClawRPart1.addChild(RightClawRPart2);
      
      //Tail\\
      this.TailPart1.addChild(TailPart2);
      this.TailPart2.addChild(TailPart3);
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
  {
    super.render(entity, f, f1, f2, f3, f4, f5);
    setRotationAngles(f5, f, f1, f2, f3, f4, entity);
    Throat.render(f5);
    MidSection.render(f5);
    TailPart1.render(f5);
    LeftHumerus.render(f5);
    RightHumerus.render(f5);
    LeftFemur.render(f5);
    RightFemur.render(f5);
  }
  
  private void setRotation(ModelRenderer model, float x, float y, float z)
  {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
  }
  
  @Override
  public void setLivingAnimations(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4)
  {
  EntityZertumEntity entityzertum = (EntityZertumEntity)par1EntityLivingBase;
      float f11 = entityzertum.func_110201_q(par4);
          
          this.TopJawCenter.rotateAngleX = 0.2288904F - 0.45707964F * f11;
          this.BottomJawCenter.rotateAngleX = 0.2288904F + 0.45707964F * f11;
  }
  
  @Override
  public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6, Entity par7Entity)
  {
    super.setRotationAngles(par1, par2, par3, par4, par5, par6, par7Entity);
    
    // animate if moving     
    updateDistanceMovedTotal(par7Entity);
    cycleIndex = (int) ((getDistanceMovedTotal(par7Entity)*CYCLES_PER_BLOCK)%undulationCycle.length);
    //System.out.println("ModelZertum setRotationAngles(), distanceMoved ="+getDistanceMovedTotal(par7Entity)+", cycleIndex ="+cycleIndex);
    LeftFemur.rotateAngleX = degToRad(undulationCycle[cycleIndex][0]) ;
    //RightFemur.rotateAngleX = degToRad(undulationCycle[cycleIndex][1]) ;
    //LeftHumerus.rotateAngleX = degToRad(undulationCycle[cycleIndex][2]) ;
    //RightHumerus.rotateAngleX = degToRad(undulationCycle[cycleIndex][3]) ;
  }
  
  protected void updateDistanceMovedTotal(Entity parEntity) 
  {
      distanceMovedTotal += parEntity.getDistance(parEntity.prevPosX, parEntity.prevPosY, parEntity.prevPosZ);
  }
      
  protected double getDistanceMovedTotal(Entity parEntity) 
  {
      return (distanceMovedTotal);
  }
  
  protected float degToRad(float degrees)
  {
      return degrees * (float)Math.PI / 180 ;
  }
  
}

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

Ok so, I created the cycle but I want it to be smoother like with the trigonometry methods. Here is the code so far:

 

Your animations can be as smooth as trig functions.  You just need to put the values in that trig would give you over a cycle, and you need to put in enough steps in the cycle so the full cycle takes the amount of time you want.  For example, there are 20 ticks per second so if you want a full swing to take 2 seconds when walking you'll need 40 rows.

 

To make it smooth, this is where you now need to act like a real animator -- you need to envision or draw out (seriously paper drawings help a lot for this) and just think through it.  You can pick your ending angles -- maybe -45 and +45 and you know the middle of the cycle will be in the middle (0).  The angle will change the most between steps at the middle of the swing, and will almost not move at all near the ends of the swing.

 

So I'd start with something like this:

-45

-32

-27

-22

-18

-15

-12

-9

-6

-3

0

3

6

9

12

15

18

22

27

32

45

32

27

22

18

15

12

9

6

3

0

-3

-6

-9

-12

-15

-18

-22

-27

-32

-45

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

It's still extremely choppy when testing out the animation, I even removed the other cycles and just left that one in (which causes the model not to move at all); and tried out the numbers you posted. Also, sometimes when the entity stops moving, it's leg gets stopped in mid animation.

 

    protected static final double CYCLES_PER_BLOCK = 1.5D; 
    protected int cycleIndex = 0;
    protected float[][] undulationCycle = new float[][]
    {
        {-45, -32, -27, -22, -18, -15, -12, -9, -6, -3, 0, 3, 6, 
        	9, 12, 15, 18, 22, 27, 32, 45, 32, 27, 22, 18, 15, 
        	12, 9, 6, 3, 0, -3, -6, -9, -12, -15, -18, -22, -27, -32, -45},
        {0, 3, 6, 
            	9, 12, 15, 18, 22, 27, 32, 45, 32, 27, 22, 18, 15, 
            	12, 9, 6, 3, 0, -3, -6, -9, -12, -15, -18, -22, -27, -32, -45},
                {-45, -32, -27, -22, -18, -15, -12, -9, -6, -3, 0, 3, 6, 
                	9, 12, 15, 18, 22, 27, 32, 45, 32, 27, 22, 18, 15, 
                	12, 9, 6, 3, 0, -3, -6, -9, -12, -15, -18, -22, -27, -32, -45},
                    {0, 3, 6, 
                    	9, 12, 15, 18, 22, 27, 32, 45, 32, 27, 22, 18, 15, 
                    	12, 9, 6, 3, 0, -3, -6, -9, -12, -15, -18, -22, -27, -32, -45},
    };

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

It shouldn't be choppy with 20 points in each swinging direction.  What is the rest of your code for actually using the array?

 

In terms of what the angles are when the entity stops, that is up to you.  When you detect it stopping you can set the angles back to 0 or whatever you want.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

Here is my code

 

package common.zeroquest.client.renderer.entity.model;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.MathHelper;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import org.lwjgl.opengl.GL11;

import common.zeroquest.entity.EntityZertumEntity;

@SideOnly(Side.CLIENT)
public class ModelZertum extends ModelBase
{
  //fields
    ModelRenderer Nose;
    ModelRenderer Ear2;
    ModelRenderer Ear1;
    ModelRenderer Head;
    ModelRenderer LeftHindLeg1;
    ModelRenderer LeftHindLeg2;
    ModelRenderer LeftHindLeg3;
    ModelRenderer RightHindLeg1;
    ModelRenderer RightHindLeg2;
    ModelRenderer RightHindLeg3;
    ModelRenderer Mane1;
    ModelRenderer RightLeg;
    ModelRenderer LeftLeg;
    ModelRenderer Tail1;
    ModelRenderer Tail2;
    ModelRenderer Tail3;
    ModelRenderer Mane2;
    ModelRenderer Torso;
    ModelRenderer Neck;
    ModelRenderer Pad1;
    ModelRenderer Pad2;
    ModelRenderer Pad3;
    ModelRenderer Pad4;
    ModelRenderer PadPart1;
    ModelRenderer PadPart2;
    ModelRenderer Rope1;
    ModelRenderer Metal1;
    ModelRenderer Rope2;
    ModelRenderer Metal2;
    ModelRenderer Seat1;
    ModelRenderer Seat2;
    private float rightFemur = -0.2974289F;
    private float leftFemur = -0.2974289F;
    private float rightTibia = 0.8205006F;
    private float leftTibia = 0.8205006F;
    private float rightMetatarus = -0.5205006F;
    private float leftMetatarus = -0.5205006F;
    private float mane2StartingRotation = -0.34653F;
    private float vertebrae = -0.6015813F;
    
    //Evolved Model\\
    ModelRenderer Throat;
    ModelRenderer UpSection;
    ModelRenderer MidSection;
    ModelRenderer Pelvis;
    ModelRenderer TailPart1;
    ModelRenderer TailPart2;
    ModelRenderer TailPart3;
    ModelRenderer LeftHumerus;
    ModelRenderer LeftRadius;
    ModelRenderer LeftFClawRPart1;
    ModelRenderer LeftFClawRPart2;
    ModelRenderer LeftFClawMPart1;
    ModelRenderer LeftFClawMPart2;
    ModelRenderer LeftFClawLPart1;
    ModelRenderer LeftFClawLPart2;
    ModelRenderer RightHumerus;
    ModelRenderer RightRadius;
    ModelRenderer RightFClawRPart1;
    ModelRenderer RightFClawRPart2;
    ModelRenderer RightFClawMPart1;
    ModelRenderer RightFClawMPart2;
    ModelRenderer RightFClawLPart1;
    ModelRenderer RightFClawLPart2;
    ModelRenderer LeftFemur;
    ModelRenderer LeftTibia;
    ModelRenderer LeftMetatarsus;
    ModelRenderer LeftClawRPart1;
    ModelRenderer LeftClawRPart2;
    ModelRenderer LeftClawLPart1;
    ModelRenderer LeftClawLPart2;
    ModelRenderer LeftClawMPart1;
    ModelRenderer LeftClawMPart2;
    ModelRenderer RightFemur;
    ModelRenderer RightTibia;
    ModelRenderer RightMetatarsus;
    ModelRenderer RightClawRPart1;
    ModelRenderer RightClawRPart2;
    ModelRenderer RightClawMPart1;
    ModelRenderer RightClawMPart2;
    ModelRenderer RightClawLPart1;
    ModelRenderer RightClawLPart2;
    ModelRenderer RightEarPart1;
    ModelRenderer LeftBottomJaw;
    ModelRenderer RightEarPart2;
    ModelRenderer BottomJawPart1;
    ModelRenderer RightEarPart3;
    ModelRenderer BottomJawPart2;
    ModelRenderer LeftEarPart1;
    ModelRenderer BottomJawCenter;
    ModelRenderer LeftEarPart2;
    ModelRenderer LeftTopTeeth;
    ModelRenderer LeftEarPart3;
    ModelRenderer LeftTopJaw;
    ModelRenderer LeftBottomTeeth;
    ModelRenderer RightTopTeeth;
    ModelRenderer RightBottomTeeth;
    ModelRenderer TopJawPart1;
    ModelRenderer TopJawPart2;
    ModelRenderer TopJawCenter;
    ModelRenderer RightTopJaw;
    ModelRenderer RightBottomJaw;
    ModelRenderer EPad1;
    ModelRenderer EPad2;
    ModelRenderer EPad3;
    ModelRenderer EPad4;
    ModelRenderer EPadPart1;
    ModelRenderer EPadPart2;
    ModelRenderer ERope1;
    ModelRenderer EMetal1;
    ModelRenderer ERope2;
    ModelRenderer EMetal2;
    ModelRenderer ESeat1;
    ModelRenderer ESeat2;
    
    // create an animation cycle
    // for movement based animations you need to measure distance moved
    // and perform number of cycles per block distance moved.
    protected double distanceMovedTotal = 0.0D;
    // don't make this too large or animations will be skipped

    protected static final double CYCLES_PER_BLOCK = 1.3D; 
    protected int cycleIndex = 0;
    protected float[][] undulationCycle = new float[][]
    {
        {-32, -27, -22, -18, -15, -12, -9, -6, -3, 0, 3, 6, 
        	9, 12, 15, 18, 22, 27, 32, 27, 22, 18, 15, 
        	12, 9, 6, 3, 0, -3, -6, -9, -12, -15, -18, -22, -27, -32},
        {0, 3, 6, 
            	9, 12, 15, 18, 22, 27, 32, 27, 22, 18, 15, 
            	12, 9, 6, 3, 0, -3, -6, -9, -12, -15, -18, -22, -27, -32},
                {-32, -27, -22, -18, -15, -12, -9, -6, -3, 0, 3, 6, 
                	9, 12, 15, 18, 22, 27, 32, 27, 22, 18, 15, 
                	12, 9, 6, 3, 0, -3, -6, -9, -12, -15, -18, -22, -27, -32},
                    {0, 3, 6, 
                    	9, 12, 15, 18, 22, 27, 32, 27, 22, 18, 15, 
                    	12, 9, 6, 3, 0, -3, -6, -9, -12, -15, -18, -22, -27, -32},
    };
  
  public ModelZertum()
  {
  
      textureWidth = 256;
      textureHeight = 128;
    
    Nose = new ModelRenderer(this, 25, 27);
    Nose.addBox(-1.5F, 0F, -3F, 3, 3, 4);
    Nose.setRotationPoint(0F, 2.5F, -15F);
    setRotation(Nose, 0F, 0F, 0F);
    Ear2 = new ModelRenderer(this, 40, 28);
    Ear2.addBox(-1F, -3F, 0F, 2, 3, 1);
    Ear2.setRotationPoint(2F, -0.5F, -10.5F);
    setRotation(Ear2, 0F, 0F, 0F);
    Ear1 = new ModelRenderer(this, 40, 28);
    Ear1.addBox(-1F, -3F, 0F, 2, 3, 1);
    Ear1.setRotationPoint(-2F, -0.5F, -10.5F);
    setRotation(Ear1, 0F, 0F, 0F);
    Head = new ModelRenderer(this, 25, 15);
    Head.addBox(-3F, -0.5F, -14F, 6, 6, 5);
    Head.setRotationPoint(-0.5F, 6F, -3F);
    setRotation(Head, 0F, 0F, 0F);
    LeftHindLeg1 = new ModelRenderer(this, 11, 18);
    LeftHindLeg1.addBox(-1F, 0F, -1F, 2, 5, 3);
    LeftHindLeg1.setRotationPoint(1.5F, 13F, 5F);
    setRotation(LeftHindLeg1, -0.2974289F, 0F, 0F);
    LeftHindLeg2 = new ModelRenderer(this, 3, 44);
    LeftHindLeg2.addBox(-1F, 0F, -1F, 2, 4, 2);
    LeftHindLeg2.setRotationPoint(0F, 4.3F, -0.3F);
    setRotation(LeftHindLeg2, leftTibia, 0F, 0F);
    LeftHindLeg3 = new ModelRenderer(this, 0, 51);
    LeftHindLeg3.addBox(-1F, 0F, -1F, 2, 4, 2);
    LeftHindLeg3.setRotationPoint(0F, 3.55F, 0.2F);
    setRotation(LeftHindLeg3, leftMetatarus, 0F, 0F);
    RightHindLeg1 = new ModelRenderer(this, 11, 31);
    RightHindLeg1.addBox(-1F, 0F, -1F, 2, 5, 3);
    RightHindLeg1.setRotationPoint(-2.5F, 13F, 5F);
    setRotation(RightHindLeg1, -0.2974289F, 0F, 0F);
    RightHindLeg2 = new ModelRenderer(this, 3, 44);
    RightHindLeg2.addBox(-1F, 0F, -1F, 2, 4, 2);
    RightHindLeg2.setRotationPoint(0F, 4.3F, -0.3F);
    setRotation(RightHindLeg2, rightTibia, 0F, 0F);
    RightHindLeg3 = new ModelRenderer(this, 9, 51);
    RightHindLeg3.addBox(-1F, 0F, -1F, 2, 4, 2);
    RightHindLeg3.setRotationPoint(0F, 3.55F, 0.2F);
    setRotation(RightHindLeg3, rightMetatarus, 0F, 0F);
      Mane1 = new ModelRenderer(this, 43, 0);
      Mane1.addBox(-3F, -3F, -3F, 6, 6, 7);
      Mane1.setRotationPoint(-0.5F, 14F, -3F);
      setRotation(Mane1, 1.496439F, 0F, 0F);
      Neck = new ModelRenderer(this, 0, 0);
      Neck.addBox(-2.5F, -12F, -4F, 4, 7, 4);
      Neck.setRotationPoint(0.5F, 0F, 0F);
      setRotation(Neck, -0.6015813F, 0F, 0F);
      Mane2 = new ModelRenderer(this, 18, 0);
      Mane2.addBox(-2.5F, -7F, -3.6F, 5, 6, 7);
      Mane2.setRotationPoint(0F, 0F, 0F);
      setRotation(Mane2, -0.34653F, 0F, 0F);
      RightLeg = new ModelRenderer(this, 0, 30);
      RightLeg.addBox(-1F, 0F, -1F, 2, 10, 2);
      RightLeg.setRotationPoint(-3F, 14F, -4F);
      setRotation(RightLeg, 0F, 0F, 0F);
      LeftLeg = new ModelRenderer(this, 0, 16);
      LeftLeg.addBox(-1F, 0F, -1F, 2, 10, 2);
      LeftLeg.setRotationPoint(2F, 14F, -4F);
      setRotation(LeftLeg, 0F, 0F, 0F);
      Tail1 = new ModelRenderer(this, 91, 0);
      Tail1.addBox(-1.5F, 0F, -1F, 4, 8, 4);
      Tail1.setRotationPoint(-1F, 14.3F, 6F);
      setRotation(Tail1, 1.315962F, 0F, 0F);
      Tail2 = new ModelRenderer(this, 110, 0);
      Tail2.addBox(-1.5F, 0F, -1F, 3, 8, 3);
      Tail2.setRotationPoint(0.5F, 6F, 0.5F);
      setRotation(Tail2, -0.041605F, 0F, 0F);
      Tail3 = new ModelRenderer(this, 110, 13);
      Tail3.addBox(-1F, 0F, -1F, 2, 8, 2);
      Tail3.setRotationPoint(0F, 6.5F, 0.5F);
      setRotation(Tail3, 0.001605F, 0F, 0F);
      Torso = new ModelRenderer(this, 69, 0);
      Torso.addBox(-2.5F, -3F, -3F, 5, 9, 5);
      Torso.setRotationPoint(-0.5F, 12.5F, 1F);
      setRotation(Torso, 1.496439F, 0F, 0F);
      
      //Saddle\\
      Pad1 = new ModelRenderer(this, 110, 32);
      Pad1.addBox(-2F, 0F, 0F, 4, 1, 1);
      Pad1.setRotationPoint(-0.5F, 9.3F, -2.5F);
      setRotation(Pad1, -0.0650564F, 0F, 0F);
      Pad2 = new ModelRenderer(this, 110, 35);
      Pad2.addBox(-3F, 0F, 0F, 6, 1, 2);
      Pad2.setRotationPoint(-0.5F, 9.4F, -1.5F);
      setRotation(Pad2, -0.0743572F, 0F, 0F);
      Pad3 = new ModelRenderer(this, 110, 39);
      Pad3.addBox(-2F, 0F, 0F, 5, 1, 4);
      Pad3.setRotationPoint(-1F, 9.5F, 0.2F);
      setRotation(Pad3, -0.0650564F, 0F, 0F);
      Pad4 = new ModelRenderer(this, 110, 48);
      Pad4.addBox(-1.5F, 0F, 0F, 3, 1, 1);
      Pad4.setRotationPoint(-0.5F, 9.8F, 4.1F);
      setRotation(Pad4, -0.0650564F, 0F, 0F);
      PadPart1 = new ModelRenderer(this, 110, 29);
      PadPart1.addBox(-0.5F, 0F, 0F, 1, 1, 1);
      PadPart1.setRotationPoint(1F, 9.23F, -3.5F);
      setRotation(PadPart1, -0.0650564F, 0F, 0F);
      PadPart2 = new ModelRenderer(this, 110, 29);
      PadPart2.addBox(-0.5F, 0F, 0F, 1, 1, 1);
      PadPart2.setRotationPoint(-2F, 9.2F, -3.5F);
      setRotation(PadPart2, -0.0650564F, 0F, 0F);
      Rope1 = new ModelRenderer(this, 105, 32);
      Rope1.addBox(0F, 0F, -0.5F, 1, 4, 1);
      Rope1.setRotationPoint(1.8F, 9.6F, 0F);
      setRotation(Rope1, 0F, 0F, 0F);
      Metal1 = new ModelRenderer(this, 102, 39);
      Metal1.addBox(0F, 0F, -1F, 1, 1, 2);
      Metal1.setRotationPoint(1.8F, 13.6F, 0F);
      setRotation(Metal1, 0F, 0F, 0F);
      Rope2 = new ModelRenderer(this, 105, 32);
      Rope2.addBox(-1F, 0F, -0.5F, 1, 4, 1);
      Rope2.setRotationPoint(-2.8F, 9.6F, 0F);
      setRotation(Rope2, 0F, 0F, 0F);
      Metal2 = new ModelRenderer(this, 102, 39);
      Metal2.addBox(0F, 0F, -1F, 1, 1, 2);
      Metal2.setRotationPoint(-3.8F, 13.6F, 0F);
      setRotation(Metal2, 0F, 0F, 0F);
      Seat1 = new ModelRenderer(this, 100, 45);
      Seat1.addBox(-1F, 0F, 0F, 2, 1, 1);
      Seat1.setRotationPoint(-0.5F, 8.7F, -1.5F);
      setRotation(Seat1, -0.0650484F, 0F, 0F);
      Seat2 = new ModelRenderer(this, 100, 49);
      Seat2.addBox(-2F, 0F, 0F, 4, 1, 1);
      Seat2.setRotationPoint(-0.5F, 9F, 3.2F);
      setRotation(Seat2, -0.0650484F, 0F, 0F);
      Head.addChild(Nose);
      Head.addChild(Ear1);
      Head.addChild(Ear2);
      LeftHindLeg1.addChild(LeftHindLeg2);
      RightHindLeg1.addChild(RightHindLeg2);
      LeftHindLeg2.addChild(LeftHindLeg3);
      RightHindLeg2.addChild(RightHindLeg3);
      Mane1.addChild(Mane2);
      Mane1.addChild(Neck);
      Tail1.addChild(Tail2);
      Tail2.addChild(Tail3);

      //Ears\\
      RightEarPart1 = new ModelRenderer(this, 18, 60);
      RightEarPart1.addBox(-1F, -1F, -1F, 1, 1, 4);
      RightEarPart1.setRotationPoint(-1.5F, 1.5F, -5F);
      RightEarPart1.setTextureSize(256, 128);
      setRotation(RightEarPart1, 0.0346075F, -0.3346075F, 0F);
      RightEarPart2 = new ModelRenderer(this, 15, 66);
      RightEarPart2.addBox(-1F, -1F, 0F, 2, 2, 6);
      RightEarPart2.setRotationPoint(-0.5F, -0.5F, 0F);
      RightEarPart2.setTextureSize(256, 128);
      setRotation(RightEarPart2, 0.3346075F, -0.0346075F, 0F);
      RightEarPart3 = new ModelRenderer(this, 16, 75);
      RightEarPart3.addBox(-0.5F, -0.5F, 0F, 1, 1, 6);
      RightEarPart3.setRotationPoint(-0.5F, 0F, 4F);
      RightEarPart3.setTextureSize(256, 128);
      setRotation(RightEarPart3, 0.0346075F, 0.4115358F, 0.0743572F);
      LeftEarPart1 = new ModelRenderer(this, 18, 60);
      LeftEarPart1.addBox(-1F, -1F, -1F, 1, 1, 4);
      LeftEarPart1.setRotationPoint(3.5F, 1.5F, -5F);
      LeftEarPart1.setTextureSize(256, 128);
      setRotation(LeftEarPart1, 0.3346075F, 0.3346145F, 0F);
      LeftEarPart2 = new ModelRenderer(this, 15, 66);
      LeftEarPart2.addBox(-1F, -1F, 0F, 2, 2, 6);
      LeftEarPart2.setRotationPoint(-0.5F, -0.5F, 0F);
      LeftEarPart2.setTextureSize(256, 128);
      setRotation(LeftEarPart2, 0.0346075F, 0.0346145F, 0F);
      LeftEarPart3 = new ModelRenderer(this, 16, 75);
      LeftEarPart3.addBox(-0.5F, -0.5F, 0F, 1, 1, 6);
      LeftEarPart3.setRotationPoint(0.5F, 0F, 4F);
      LeftEarPart3.setTextureSize(256, 128);
      setRotation(LeftEarPart3, 0.0346145F, -0.411544F, -0.074351F);
      
        Throat = new ModelRenderer(this, 0, 0);
        Throat.addBox(-2F, -3F, -9F, 6, 5, 6);
        Throat.setRotationPoint(-1F, 7.7F, -11F);
        Throat.setTextureOffset(256, 128);
        setRotation(Throat, -0.2288904F, 0F, 0F);
        UpSection = new ModelRenderer(this, 25, 0);
        UpSection.addBox(-2F, -2.5F, -9F, 7, 7, ;
        UpSection.setRotationPoint(-1.5F, 7F, -6F);
        UpSection.setTextureSize(256, 128);
        setRotation(UpSection, -0.1917118F, 0F, 0F);
        MidSection = new ModelRenderer(this, 56, 0);
        MidSection.addBox(-2F, -2.5F, 0F, 6, 6, 9);
        MidSection.setRotationPoint(-1F, 7.5F, -8F);
        MidSection.setTextureSize(256, 128);
        setRotation(MidSection, -0.0429974F, 0F, 0F);
        Pelvis = new ModelRenderer(this, 87, 0);
        Pelvis.addBox(-2F, -2.5F, 0F, 6, 6, 7);
        Pelvis.setRotationPoint(-1F, 7.8F, 0F);
        Pelvis.setTextureSize(256, 128);
        setRotation(Pelvis, 0F, 0F, 0F);
        TailPart1 = new ModelRenderer(this, 114, 0);
        TailPart1.addBox(-1F, -1F, 0F, 2, 2, 11);
        TailPart1.setRotationPoint(0F, 7F, 6F);
        TailPart1.setTextureOffset(256, 128);
        setRotation(TailPart1, -0.3346075F, 0F, 0F);
        TailPart2 = new ModelRenderer(this, 141, 0);
        TailPart2.addBox(-1F, -1F, 0F, 2, 2, 11);
        TailPart2.setRotationPoint(0F, -0.2F, 10F);
        TailPart2.setTextureSize(256, 128);
        setRotation(TailPart2, -0.3948578F, 0F, 0F);
        TailPart3 = new ModelRenderer(this, 168, 0);
        TailPart3.addBox(-1F, -1F, 0F, 2, 2, 11);
        TailPart3.setRotationPoint(0F, 0F, 10.8F);
        TailPart3.setTextureSize(256, 128);
        setRotation(TailPart3, 0.2974289F, 0F, 0F);
        
        LeftHumerus = new ModelRenderer(this, 39, 16);
        LeftHumerus.addBox(0F, 0F, 0F, 3, 10, 4);
        LeftHumerus.setRotationPoint(1.5F, 4.7F, -12F);
        LeftHumerus.setTextureSize(256, 128);
        setRotation(LeftHumerus, 0.3869765F, 0F, 0F);
        LeftRadius = new ModelRenderer(this, 71, 16);
        LeftRadius.addBox(0F, 0F, 0F, 3, 11, 4);
        LeftRadius.setRotationPoint(0F, 8.0F, 0.45F);
        LeftRadius.setTextureSize(256, 128);
        setRotation(LeftRadius, -0.3869765F, 0F, 0F);
        LeftFClawRPart1 = new ModelRenderer(this, 0, 58);
        LeftFClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        LeftFClawRPart1.setRotationPoint(0F, 9.7F, 0F);
        LeftFClawRPart1.setTextureSize(256, 128);
        setRotation(LeftFClawRPart1, 0F, 0.5159687F, 0F);
        LeftFClawRPart2 = new ModelRenderer(this, 5, 58);
        LeftFClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        LeftFClawRPart2.setRotationPoint(0F, 0F, 0F);
        LeftFClawRPart2.setTextureSize(256, 128);
        setRotation(LeftFClawRPart2, 1.16093F, 0.0259717F, 0F);
        LeftFClawMPart1 = new ModelRenderer(this, 0, 58);
        LeftFClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        LeftFClawMPart1.setRotationPoint(1.5F, 9.7F, 0F);
        LeftFClawMPart1.setTextureSize(256, 128);
        setRotation(LeftFClawMPart1, 0F, 0F, 0F);
        LeftFClawMPart2 = new ModelRenderer(this, 5, 58);
        LeftFClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        LeftFClawMPart2.setRotationPoint(0F, 0F, 0F);
        LeftFClawMPart2.setTextureSize(256, 128);
        setRotation(LeftFClawMPart2, 1.16093F, 0F, 0F);
        LeftFClawLPart1 = new ModelRenderer(this, 0, 58);
        LeftFClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        LeftFClawLPart1.setRotationPoint(3F, 9.7F, 0F);
        LeftFClawLPart1.setTextureSize(256, 128);
        setRotation(LeftFClawLPart1, 0F, -0.5159717F, 0F);
        LeftFClawLPart2 = new ModelRenderer(this, 5, 58);
        LeftFClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        LeftFClawLPart2.setRotationPoint(0F, 0F, 0F);
        LeftFClawLPart2.setTextureSize(256, 128);
        setRotation(LeftFClawLPart2, 1.16093F, -0.0059717F, 0F);
        
        RightHumerus = new ModelRenderer(this, 55, 16);
        RightHumerus.addBox(-3F, 0F, 0F, 3, 10, 4);
        RightHumerus.setRotationPoint(-1.5F, 4.7F, -12F);
        RightHumerus.setTextureSize(256, 128);
        setRotation(RightHumerus, 0.3869765F, 0F, 0F);
        RightRadius = new ModelRenderer(this, 71, 16);
        RightRadius.addBox(-3F, 0F, 0F, 3, 11, 4);
        RightRadius.setRotationPoint(0F, 8.0F, 0.45F);
        RightRadius.setTextureSize(256, 128);
        setRotation(RightRadius, -0.3869765F, 0F, 0F);
        RightFClawRPart1 = new ModelRenderer(this, 0, 58);
        RightFClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        RightFClawRPart1.setRotationPoint(-3F, 9.7F, 0F);
        RightFClawRPart1.setTextureSize(256, 128);
        setRotation(RightFClawRPart1, 0F, 0.5159687F, 0F);
        RightFClawRPart2 = new ModelRenderer(this, 5, 58);
        RightFClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        RightFClawRPart2.setRotationPoint(0F, 0F, 0F);
        RightFClawRPart2.setTextureSize(256, 128);
        setRotation(RightFClawRPart2, 1.16093F, 0.0259717F, 0F);
        RightFClawMPart1 = new ModelRenderer(this, 0, 58);
        RightFClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        RightFClawMPart1.setRotationPoint(-1.5F, 9.7F, 0F);
        RightFClawMPart1.setTextureSize(256, 128);
        setRotation(RightFClawMPart1, 0F, 0F, 0F);
        RightFClawMPart2 = new ModelRenderer(this, 5, 58);
        RightFClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        RightFClawMPart2.setRotationPoint(0F, 0F, 0F);
        RightFClawMPart2.setTextureSize(256, 128);
        setRotation(RightFClawMPart2, 1.16093F, 0F, 0F);
        RightFClawLPart1 = new ModelRenderer(this, 0, 58);
        RightFClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        RightFClawLPart1.setRotationPoint(0F, 9.7F, 0F);
        RightFClawLPart1.setTextureSize(256, 128);
        setRotation(RightFClawLPart1, 0F, -0.5159717F, 0F);
        RightFClawLPart2 = new ModelRenderer(this, 5, 58);
        RightFClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        RightFClawLPart2.setRotationPoint(0F, 0F, 0F);
        RightFClawLPart2.setTextureSize(256, 128);
        setRotation(RightFClawLPart2, 1.16093F, -0.0059717F, 0F);
        
        LeftFemur = new ModelRenderer(this, 19, 16);
        LeftFemur.addBox(0F, 0F, 0F, 3, 8, 6);
        LeftFemur.setRotationPoint(1.5F, 5.7F, 0F);
        LeftFemur.setTextureSize(256, 128);
        setRotation(LeftFemur, 0F, 0F, 0F);
        LeftTibia = new ModelRenderer(this, 0, 31);
        LeftTibia.addBox(0F, 0F, 0F, 3, 3, 9);
        LeftTibia.setRotationPoint(0F, 7.7F, 0F);
        LeftTibia.setTextureSize(256, 128);
        setRotation(LeftTibia, 0F, 0F, 0F);
        LeftMetatarsus = new ModelRenderer(this, 0, 44);
        LeftMetatarsus.addBox(0F, 0F, 0F, 3, 10, 3);
        LeftMetatarsus.setRotationPoint(0F, -0.02F, 8F);
        LeftMetatarsus.setTextureSize(256, 128);
        setRotation(LeftMetatarsus, -0.1289922F, 0F, 0F);
        LeftClawRPart1 = new ModelRenderer(this, 0, 58);
        LeftClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        LeftClawRPart1.setRotationPoint(0F, 9F, 0F);
        LeftClawRPart1.setTextureSize(256, 128);
        setRotation(LeftClawRPart1, 0F, 0.5159687F, 0F);
        LeftClawRPart2 = new ModelRenderer(this, 5, 58);
        LeftClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        LeftClawRPart2.setRotationPoint(0F, 0F, 0F);
        LeftClawRPart2.setTextureSize(256, 128);
        setRotation(LeftClawRPart2, 1.16093F, -0.0259717F, 0F);
        LeftClawMPart1 = new ModelRenderer(this, 0, 58);
        LeftClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        LeftClawMPart1.setRotationPoint(1.5F, 9F, 0F);
        LeftClawMPart1.setTextureSize(256, 128);
        setRotation(LeftClawMPart1, 0F, 0F, 0F);
        LeftClawMPart2 = new ModelRenderer(this, 5, 58);
        LeftClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        LeftClawMPart2.setRotationPoint(0F, 0F, 0F);
        LeftClawMPart2.setTextureSize(256, 128);
        setRotation(LeftClawMPart2, 1.16093F, 0F, 0F);
        LeftClawLPart1 = new ModelRenderer(this, 0, 58);
        LeftClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        LeftClawLPart1.setRotationPoint(3F, 9F, 0F);
        LeftClawLPart1.setTextureSize(256, 128);
        setRotation(LeftClawLPart1, 0F, -0.5159717F, 0F);
        LeftClawLPart2 = new ModelRenderer(this, 5, 58);
        LeftClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        LeftClawLPart2.setRotationPoint(0F, 0F, 0F);
        LeftClawLPart2.setTextureSize(256, 128);
        setRotation(LeftClawLPart2, 1.16093F, 0.0059717F, 0F);
        
        RightFemur = new ModelRenderer(this, 0, 16);
        RightFemur.addBox(-2F, 0F, 0F, 3, 8, 6);
        RightFemur.setRotationPoint(-2.5F, 5.7F, 0F);
        RightFemur.setTextureSize(256, 128);
        setRotation(RightFemur, 0F, 0F, 0F);
        RightTibia = new ModelRenderer(this, 0, 31);
        RightTibia.addBox(-2F, 0F, 0F, 3, 3, 9);
        RightTibia.setRotationPoint(0F, 7.7F, 0F);
        RightTibia.setTextureSize(256, 128);
        setRotation(RightTibia, 0F, 0F, 0F);
        RightMetatarsus = new ModelRenderer(this, 0, 44);
        RightMetatarsus.addBox(-2F, 0F, 0F, 3, 10, 3);
        RightMetatarsus.setRotationPoint(0F, -0.02F, 8F);
        RightMetatarsus.setTextureSize(256, 128);
        setRotation(RightMetatarsus, -0.1289922F, 0F, 0F);
        RightClawRPart1 = new ModelRenderer(this, 0, 58);
        RightClawRPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        RightClawRPart1.setRotationPoint(-2F, 9F, 0F);
        RightClawRPart1.setTextureSize(256, 128);
        setRotation(RightClawRPart1, 0F, 0.5159687F, 0F);
        RightClawRPart2 = new ModelRenderer(this, 5, 58);
        RightClawRPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        RightClawRPart2.setRotationPoint(0F, 0F, 0F);
        RightClawRPart2.setTextureSize(256, 128);
        setRotation(RightClawRPart2, 1.16093F, -0.0259717F, 0F);
        RightClawMPart1 = new ModelRenderer(this, 0, 58);
        RightClawMPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        RightClawMPart1.setRotationPoint(-0.5F, 9F, 0F);
        RightClawMPart1.setTextureSize(256, 128);
        setRotation(RightClawMPart1, 0F, 0F, 0F);
        RightClawMPart2 = new ModelRenderer(this, 5, 58);
        RightClawMPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        RightClawMPart2.setRotationPoint(0F, 0F, 0F);
        RightClawMPart2.setTextureSize(256, 128);
        setRotation(RightClawMPart2, 1.16093F, 0F, 0F);
        RightClawLPart1 = new ModelRenderer(this, 0, 58);
        RightClawLPart1.addBox(-0.5F, 0F, -1F, 1, 1, 1);
        RightClawLPart1.setRotationPoint(1F, 9F, 0F);
        RightClawLPart1.setTextureSize(256, 128);
        setRotation(RightClawLPart1, 0F, -0.5159717F, 0F);
        RightClawLPart2 = new ModelRenderer(this, 5, 58);
        RightClawLPart2.addBox(-0.5F, -1F, -3.4F, 1, 1, 3);
        RightClawLPart2.setRotationPoint(0F, 0F, 0F);
        RightClawLPart2.setTextureSize(256, 128);
        setRotation(RightClawLPart2, 1.16093F, 0.0059717F, 0F);
        
        //Top Jaw\\
        TopJawCenter = new ModelRenderer(this, 56, 38);
        TopJawCenter.addBox(-0.5F, 0F, -7.4F, 2, 1, ;
        TopJawCenter.setRotationPoint(0.5F, -2.5F, -9F);
        TopJawCenter.setTextureSize(256, 128);
        setRotation(TopJawCenter, 0.2288904F, 0F, 0F);
        LeftTopJaw = new ModelRenderer(this, 39, 50);
        LeftTopJaw.addBox(0F, 0F, -9F, 1, 2, 9);
        LeftTopJaw.setRotationPoint(3F, 0F, 0F);
        LeftTopJaw.setTextureSize(256, 128);
        setRotation(LeftTopJaw, 0F, 0.3346075F, 0F);
        LeftTopTeeth = new ModelRenderer(this, 61, 50);
        LeftTopTeeth.addBox(0.5F, 0F, -9.3F, 0, 1, 5);
        LeftTopTeeth.setRotationPoint(0F, 2F, 0F);
        LeftTopTeeth.setTextureSize(256, 128);
        setRotation(LeftTopTeeth, 0F, -0.0346145F, 0F);
        RightTopJaw = new ModelRenderer(this, 39, 63);
        RightTopJaw.addBox(-1F, 0F, -9F, 1, 2, 9);
        RightTopJaw.setRotationPoint(-2F, 0F, 0F);
        RightTopJaw.setTextureSize(256, 128);
        setRotation(RightTopJaw, 0F, -0.3346075F, 0F);
        RightTopTeeth = new ModelRenderer(this, 61, 50);
        RightTopTeeth.addBox(-0.5F, 0F, -9.3F, 0, 1, 5);
        RightTopTeeth.setRotationPoint(0F, 2F, 0F);
        RightTopTeeth.setTextureSize(256, 128);
        setRotation(RightTopTeeth, 0F, 0.0346075F, 0F);
        TopJawPart1 = new ModelRenderer(this, 38, 40);
        TopJawPart1.addBox(-1F, 0F, -5.7F, 2, 1, 6);
        TopJawPart1.setRotationPoint(-1F, 0F, 0F);
        TopJawPart1.setTextureSize(256, 128);
        setRotation(TopJawPart1, 0F, -0.3346075F, 0F);
        TopJawPart2 = new ModelRenderer(this, 38, 40);
        TopJawPart2.addBox(-1F, 0F, -5.7F, 2, 1, 6);
        TopJawPart2.setRotationPoint(2F, 0F, 0F);
        TopJawPart2.setTextureSize(256, 128);
        setRotation(TopJawPart2, 0F, 0.3346145F, 0F);
        
        //BottomJaw\\
        BottomJawCenter = new ModelRenderer(this, 0, 109);
        BottomJawCenter.addBox(-0.5F, 0F, -7.2F, 2, 1, ;
        BottomJawCenter.setRotationPoint(0.5F, 1.5F, -8F);
        BottomJawCenter.setTextureSize(256, 128);
        setRotation(BottomJawCenter, 0.2288904F, 0F, 0F);
        LeftBottomJaw = new ModelRenderer(this, 0, 84);
        LeftBottomJaw.addBox(0F, 0F, -9F, 1, 2, 9);
        LeftBottomJaw.setRotationPoint(3F, -1.1F, 0F);
        LeftBottomJaw.setTextureSize(256, 128);
        setRotation(LeftBottomJaw, 0F, 0.3346075F, 0F);
        LeftBottomTeeth = new ModelRenderer(this, 21, 93);
        LeftBottomTeeth.addBox(0.5F, 0F, -9.3F, 0, 1, 5);
        LeftBottomTeeth.setRotationPoint(0.5F, -1.2F, 0F);
        LeftBottomTeeth.setTextureSize(256, 128);
        setRotation(LeftBottomTeeth, 0, 0.0346145F, 0F);
        RightBottomJaw = new ModelRenderer(this, 0, 97);
        RightBottomJaw.addBox(-1F, 0F, -9F, 1, 2, 9);
        RightBottomJaw.setRotationPoint(-2F, -1.1F, 0F);
        RightBottomJaw.setTextureSize(256, 128);
        setRotation(RightBottomJaw, 0, -0.3346075F, 0F);
        RightBottomTeeth = new ModelRenderer(this, 21, 93);
        RightBottomTeeth.addBox(-0.5F, 0F, -9.3F, 0, 1, 5);
        RightBottomTeeth.setRotationPoint(-0.5F,-1.2F, 0F);
        RightBottomTeeth.setTextureSize(256, 128);
        setRotation(RightBottomTeeth, 0, -0.0346075F, 0F);
        BottomJawPart1 = new ModelRenderer(this, 21, 84);
        BottomJawPart1.addBox(-1F, 0F, -6.5F, 2, 1, 7);
        BottomJawPart1.setRotationPoint(-1F, 0F, 0F);
        BottomJawPart1.setTextureSize(256, 128);
        setRotation(BottomJawPart1, 0, -0.3346075F, 0F);
        BottomJawPart2 = new ModelRenderer(this, 21, 84);
        BottomJawPart2.addBox(-1F, 0F, -6.5F, 2, 1, 7);
        BottomJawPart2.setRotationPoint(2F, 0F, 0F);
        BottomJawPart2.setTextureSize(256, 128);
        setRotation(BottomJawPart2, 0, 0.3346075F, 0F);
        EPad1 = new ModelRenderer(this, 110, 32);
        EPad1.addBox(-2F, 0F, 0F, 4, 1, 1);
        EPad1.setRotationPoint(0F, 4.5F, -5.5F);
        EPad1.setTextureSize(256, 128);
        setRotation(EPad1, 0F, 0F, 0F);
        EPad2 = new ModelRenderer(this, 110, 35);
        EPad2.addBox(-3F, 0F, 0F, 6, 1, 2);
        EPad2.setRotationPoint(0F, 4.5F, -4.5F);
        EPad2.setTextureSize(256, 128);
        setRotation(EPad2, 0F, 0F, 0F);
        EPad3 = new ModelRenderer(this, 110, 39);
        EPad3.addBox(-2F, 0F, 0F, 5, 1, 4);
        EPad3.setRotationPoint(-0.5F, 4.5F, -2.8F);
        EPad3.setTextureSize(256, 128);
        setRotation(EPad3, 0F, 0F, 0F);
        EPad4 = new ModelRenderer(this, 110, 48);
        EPad4.addBox(-1.5F, 0F, 0F, 3, 1, 1);
        EPad4.setRotationPoint(0F, 4.5F, 1.1F);
        EPad4.setTextureSize(256, 128);
        setRotation(EPad4, 0F, 0F, 0F);
        EPadPart1 = new ModelRenderer(this, 110, 29);
        EPadPart1.addBox(-0.5F, 0F, 0F, 1, 1, 1);
        EPadPart1.setRotationPoint(1.5F, 4.5F, -6.5F);
        EPadPart1.setTextureSize(256, 128);
        setRotation(EPadPart1, 0F, 0F, 0F);
        EPadPart2 = new ModelRenderer(this, 110, 29);
        EPadPart2.addBox(-0.5F, 0F, 0F, 1, 1, 1);
        EPadPart2.setRotationPoint(-1.5F, 4.5F, -6.5F);
        EPadPart2.setTextureSize(256, 128);
        EPadPart2.mirror = true;
        setRotation(EPadPart2, 0F, 0F, 0F);
        ERope1 = new ModelRenderer(this, 105, 32);
        ERope1.addBox(0F, 0F, -0.5F, 1, 6, 1);
        ERope1.setRotationPoint(2.8F, 4.6F, -3F);
        ERope1.setTextureSize(256, 128);
        setRotation(ERope1, 0F, 0F, 0F);
        EMetal1 = new ModelRenderer(this, 102, 41);
        EMetal1.addBox(0F, 0F, -1F, 1, 1, 2);
        EMetal1.setRotationPoint(2.8F, 10.6F, -3F);
        EMetal1.setTextureSize(256, 128);
        setRotation(EMetal1, 0F, 0F, 0F);
        ERope2 = new ModelRenderer(this, 105, 32);
        ERope2.addBox(-1F, 0F, -0.5F, 1, 6, 1);
        ERope2.setRotationPoint(-2.8F, 4.6F, -3F);
        ERope2.setTextureSize(256, 128);
        setRotation(ERope2, 0F, 0F, 0F);
        EMetal2 = new ModelRenderer(this, 102, 41);
        EMetal2.addBox(-1F, 0F, -1F, 1, 1, 2);
        EMetal2.setRotationPoint(-2.8F, 10.6F, -3F);
        EMetal2.setTextureSize(256, 128);
        setRotation(EMetal2, 0F, 0F, 0F);
        ESeat1 = new ModelRenderer(this, 100, 45);
        ESeat1.addBox(-1F, 0F, 0F, 2, 1, 1);
        ESeat1.setRotationPoint(0F, 4F, -4.5F);
        ESeat1.setTextureSize(256, 128);
        setRotation(ESeat1, 0F, 0F, 0F);
        ESeat2 = new ModelRenderer(this, 100, 49);
        ESeat2.addBox(-2F, 0F, 0F, 4, 1, 1);
        ESeat2.setRotationPoint(0F, 4F, 0.2F);
        ESeat2.setTextureSize(256, 128);
        setRotation(ESeat2, 0F, 0F, 0F);
        
        //Head\\
        this.Throat.addChild(TopJawCenter);
        this.Throat.addChild(BottomJawCenter);
        this.TopJawCenter.addChild(LeftEarPart1);
        this.TopJawCenter.addChild(RightEarPart1);
        this.TopJawCenter.addChild(TopJawPart1);
        this.TopJawCenter.addChild(TopJawPart2);
        this.TopJawCenter.addChild(LeftTopJaw);
        this.TopJawCenter.addChild(RightTopJaw);
        this.LeftTopJaw.addChild(LeftTopTeeth);
        this.RightTopJaw.addChild(RightTopTeeth);
        this.LeftEarPart1.addChild(LeftEarPart2);
        this.LeftEarPart2.addChild(LeftEarPart3);
        this.BottomJawCenter.addChild(BottomJawPart1);
        this.BottomJawCenter.addChild(BottomJawPart2);
        this.BottomJawCenter.addChild(LeftBottomJaw);
        this.BottomJawCenter.addChild(RightBottomJaw);
        this.LeftBottomJaw.addChild(LeftBottomTeeth);
        this.RightBottomJaw.addChild(RightBottomTeeth);
        this.RightEarPart1.addChild(RightEarPart2);
        this.RightEarPart2.addChild(RightEarPart3);
        
        //Front Legs\\
        this.LeftHumerus.addChild(LeftRadius);
        this.LeftRadius.addChild(LeftFClawLPart1);
        this.LeftRadius.addChild(LeftFClawMPart1);
        this.LeftRadius.addChild(LeftFClawRPart1);
        this.LeftFClawLPart1.addChild(LeftFClawLPart2);
        this.LeftFClawMPart1.addChild(LeftFClawMPart2);
        this.LeftFClawRPart1.addChild(LeftFClawRPart2);
        this.RightHumerus.addChild(RightRadius);
        this.RightRadius.addChild(RightFClawLPart1);
        this.RightRadius.addChild(RightFClawMPart1);
        this.RightRadius.addChild(RightFClawRPart1);
        this.RightFClawLPart1.addChild(RightFClawLPart2);
        this.RightFClawMPart1.addChild(RightFClawMPart2);
        this.RightFClawRPart1.addChild(RightFClawRPart2);
        
        //Back Legs\\\
        this.LeftFemur.addChild(LeftTibia);
        this.LeftTibia.addChild(LeftMetatarsus);
        this.LeftMetatarsus.addChild(LeftClawLPart1);
        this.LeftMetatarsus.addChild(LeftClawMPart1);
        this.LeftMetatarsus.addChild(LeftClawRPart1);
        this.LeftClawLPart1.addChild(LeftClawLPart2);
        this.LeftClawMPart1.addChild(LeftClawMPart2);
        this.LeftClawRPart1.addChild(LeftClawRPart2);
        this.RightFemur.addChild(RightTibia);
        this.RightTibia.addChild(RightMetatarsus);
        this.RightMetatarsus.addChild(RightClawLPart1);
        this.RightMetatarsus.addChild(RightClawMPart1);
        this.RightMetatarsus.addChild(RightClawRPart1);
        this.RightClawLPart1.addChild(RightClawLPart2);
        this.RightClawMPart1.addChild(RightClawMPart2);
        this.RightClawRPart1.addChild(RightClawRPart2);
        
        //Tail\\
        this.TailPart1.addChild(TailPart2);
        this.TailPart2.addChild(TailPart3);
  }
  
  @Override
  public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7)
  {
      EntityZertumEntity entityzertum = (EntityZertumEntity)par1Entity;
      boolean flag = entityzertum.isSaddled();
      super.render(par1Entity, par2, par3, par4, par5, par6, par7);
      this.setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity);
      if(!entityzertum.hasEvolved()){
    	  if (this.isChild)
      {
          float f6 = 2.0F;
          GL11.glPushMatrix();
          GL11.glTranslatef(0.0F, 5.0F * par7, 6.0F * par7);
          Head.render(par7);
          GL11.glPopMatrix();
          GL11.glPushMatrix();
          GL11.glScalef(1.0F / f6, 1.0F / f6, 1.0F / f6);
          GL11.glTranslatef(0.0F, 24.0F * par7, 0.0F);
          LeftHindLeg1.render(par7);
          RightHindLeg1.render(par7);
          Mane1.render(par7);
          RightLeg.render(par7);
          LeftLeg.render(par7);
          Tail1.render(par7);
          Torso.render(par7);
          GL11.glPopMatrix();
      }
      else
      {
          GL11.glPushMatrix();
          GL11.glScalef(1.5F, 1.5F, 1.5F);
          GL11.glTranslatef(0.0F, -0.5F, 0.0F);
          Head.render(par7);
          LeftHindLeg1.render(par7);
          RightHindLeg1.render(par7);
          Mane1.render(par7);
          RightLeg.render(par7);
          LeftLeg.render(par7);
          Tail1.render(par7);
          Torso.render(par7);
          GL11.glPopMatrix();
          
          if(flag){
              GL11.glPushMatrix();
              GL11.glScalef(1.5F, 1.5F, 1.5F);
              GL11.glTranslatef(0.0F, -0.5F, 0.0F);
        	  Pad1.render(par7);
        	  Pad2.render(par7);
        	  Pad3.render(par7);
        	  Pad4.render(par7);
        	  PadPart1.render(par7);
        	  PadPart2.render(par7);
        	  Rope1.render(par7);
        	  Metal1.render(par7);
        	  Rope2.render(par7);
        	  Metal2.render(par7);
        	  Seat1.render(par7);
        	  Seat2.render(par7);
              GL11.glPopMatrix();
          }
      }
      }else if(entityzertum.hasEvolved()){
    	    if (this.isChild)
    	    {
    	        float f6 = 2.0F;
    	        GL11.glPushMatrix();
    	        GL11.glTranslatef(0.0F, 5.0F * par7, 6.0F * par7);
    	        GL11.glPopMatrix();
    	        Throat.render(par7);
    	        GL11.glPushMatrix();
    	        UpSection.render(par7);
    	        MidSection.render(par7);
    	        Pelvis.render(par7);
    	        TailPart1.render(par7);
    	        LeftHumerus.render(par7);
    	        RightHumerus.render(par7);
    	        LeftFemur.render(par7);
    	        RightFemur.render(par7);
    	        GL11.glScalef(1.0F / f6, 1.0F / f6, 1.0F / f6);
    	        GL11.glTranslatef(0.0F, 24.0F * par7, 0.0F);

    	        GL11.glPopMatrix();
    	    }
    	    else
    	    {
    	        Throat.render(par7);
    	        UpSection.render(par7);
    	        MidSection.render(par7);
    	        Pelvis.render(par7);
    	        TailPart1.render(par7);
    	        LeftHumerus.render(par7);
    	        RightHumerus.render(par7);
    	        LeftFemur.render(par7);
    	        RightFemur.render(par7);
    	    }
    	    
    	    if(flag){
    	  	  EPad1.render(par7);
    	  	  EPad2.render(par7);
    	  	  EPad3.render(par7);
    	  	  EPad4.render(par7);
    	  	  EPadPart1.render(par7);
    	  	  EPadPart2.render(par7);
    	  	  ERope1.render(par7);
    	  	  EMetal1.render(par7);
    	  	  ERope2.render(par7);
    	  	  EMetal2.render(par7);
    	  	  ESeat1.render(par7);
    	  	  ESeat2.render(par7);
    	    }
      }
  }
  
  /**
   * Used for easily adding entity-dependent animations. The second and third float params here are the same second
   * and third as in the setRotationAngles method.
   */
  @Override
  public void setLivingAnimations(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4)
  {
  EntityZertumEntity entityzertum = (EntityZertumEntity)par1EntityLivingBase;
      float f11 = entityzertum.func_110201_q(par4);
      
      if (entityzertum.isAngry())
      {
          this.Ear1.rotateAngleX = -0.5948578F;
          this.Ear2.rotateAngleX = -0.5948578F;
      }else if (entityzertum.getHealth() <=10){
          this.Ear1.rotateAngleX = -0.9948578F;
          this.Ear2.rotateAngleX = -0.9948578F;
      }else{
          this.Ear1.rotateAngleX = 0.0F;
          this.Ear2.rotateAngleX = 0.0F;
      }
      if(!entityzertum.hasEvolved()){
      if (entityzertum.isSitting()) //TODO
      {
    	  LeftHindLeg1.setRotationPoint(1.5F, 18F, 5F);
    	  LeftHindLeg1.rotateAngleX = -2.082003F;
          LeftHindLeg2.setRotationPoint(0F, 4F, 1.2F);
          LeftHindLeg2.rotateAngleX = 2.6205006F;
          LeftHindLeg3.setRotationPoint(0F, 3.55F, 0.2F);
          LeftHindLeg3.rotateAngleX = -0.5205006F;
          RightHindLeg1.setRotationPoint(-2.5F, 18F, 5F);
          RightHindLeg1.rotateAngleX = -2.082003F;
          RightHindLeg2.setRotationPoint(0F, 4F, 1.2F);
          RightHindLeg2.rotateAngleX = 2.6205006F;
          RightHindLeg3.setRotationPoint(0F, 3.55F, 0.2F);
          RightHindLeg3.rotateAngleX = -0.5205006F;
          Torso.setRotationPoint(-0.5F, 14F, 1F);
          Torso.rotateAngleX = 0.9759358F;
          Tail1.setRotationPoint(-1F, 18.5F, 5F);
          Tail1.rotateAngleX = 1.167248F;
          Tail2.rotateAngleX = 0.315962F;
          Tail3.rotateAngleX = 0.23333F;
          
          //Saddle\\
          Pad1.setRotationPoint(-0.5F, 9.7F, -1.5F);
          setRotation(Pad1, -0.288128F, 0F, 0F);
          Pad2.setRotationPoint(-0.5F, 10F, -0.5F);
          setRotation(Pad2, -0.3346075F, 0F, 0F);
          Pad3.setRotationPoint(-1F, 10.7F, 1.4F);
          setRotation(Pad3, -0.5855569F, 0F, 0F);
          Pad4.setRotationPoint(-0.5F, 12.9F, 4.7F);
          setRotation(Pad4, -0.5948648F, 0F, 0F);
          PadPart1.setRotationPoint(1F, 9.6F, -2.4F);
          setRotation(PadPart1, -0.3624853F, 0F, 0F);
          PadPart2.setRotationPoint(-2F, 9.6F, -2.4F);
          setRotation(PadPart2, -0.3624874F, 0F, 0F);
          Rope1.setRotationPoint(1.8F, 10.6F, 1F);
          setRotation(Rope1, -0.3346075F, 0F, 0F);
          Metal1.setRotationPoint(1.8F, 14.2F, -0.3F);
          setRotation(Metal1, -0.3346145F, 0F, 0F);
          Rope2.setRotationPoint(-2.8F, 10.6F, 1F);
          setRotation(Rope2, -0.3346145F, 0F, 0F);
          Metal2.setRotationPoint(-3.8F, 13.6F, 0F);
          setRotation(Metal2, -0.3346145F, 0F, 0F);
          Seat1.setRotationPoint(-0.5F, 11.6F, 4.3F);
          setRotation(Seat1, -0.5483867F, 0F, 0F);
          Seat2.setRotationPoint(-0.5F, 8.9F, -1.2F);
          setRotation(Seat2, -0.2881364F, 0F, 0F);
    	  
      }
      else
      {
    	LeftHindLeg1.setRotationPoint(1.5F, 13F, 5F);
    	LeftHindLeg1.rotateAngleX = -0.2974289F;
    	LeftHindLeg2.setRotationPoint(0F, 4.3F, -0.3F);
    	LeftHindLeg2.rotateAngleX = leftTibia;
    	LeftHindLeg3.setRotationPoint(0F, 3.55F, 0.2F);
    	LeftHindLeg3.rotateAngleX = leftMetatarus;
    	RightHindLeg1.setRotationPoint(-2.5F, 13F, 5F);
    	RightHindLeg1.rotateAngleX = -0.2974289F;
    	RightHindLeg2.setRotationPoint(0F, 4.3F, -0.3F);
    	RightHindLeg2.rotateAngleX =  rightTibia;
    	RightHindLeg3.setRotationPoint(0F, 3.55F, 0.2F);
    	RightHindLeg3.rotateAngleX = rightMetatarus;
    	Torso.setRotationPoint(-0.5F, 12.5F, 1F);
    	Torso.rotateAngleX = 1.496439F;
        Tail1.setRotationPoint(-1F, 14.3F, 6F);
        Tail1.rotateAngleX = 1.315962F;
        Tail2.setRotationPoint(0.5F, 6F, 0.5F);
        Tail2.rotateAngleX = -0.041605F;
        Tail3.setRotationPoint(0F, 6.5F, 0.5F);
        Tail3.rotateAngleX = 0.001605F;
        //Saddle\\ TODO
        Pad1.setRotationPoint(-0.5F, 9.3F, -2.5F);
        setRotation(Pad1, -0.0650564F, 0F, 0F);
        Pad2.setRotationPoint(-0.5F, 9.4F, -1.5F);
        setRotation(Pad2, -0.0743572F, 0F, 0F);
        Pad3.setRotationPoint(-1F, 9.5F, 0.2F);
        setRotation(Pad3, -0.0650564F, 0F, 0F);
        Pad4.setRotationPoint(-0.5F, 9.8F, 4.1F);
        setRotation(Pad4, -0.0650564F, 0F, 0F);
        PadPart1.setRotationPoint(1F, 9.23F, -3.5F);
        setRotation(PadPart1, -0.0650564F, 0F, 0F);
        PadPart2.setRotationPoint(-2F, 9.2F, -3.5F);
        setRotation(PadPart2, -0.0650564F, 0F, 0F);
        Rope1.setRotationPoint(1.8F, 9.6F, 0F);
        setRotation(Rope1, 0F, 0F, 0F);
        Metal1.setRotationPoint(1.8F, 13.6F, 0F);
        setRotation(Metal1, 0F, 0F, 0F);
        Rope2.setRotationPoint(-2.8F, 9.6F, 0F);
        setRotation(Rope2, 0F, 0F, 0F);
        Metal2.setRotationPoint(-3.8F, 13.6F, 0F);
        setRotation(Metal2, 0F, 0F, 0F);
        Seat1.setRotationPoint(-0.5F, 8.7F, -1.5F);
        setRotation(Seat1, -0.0650484F, 0F, 0F);
        Seat2.setRotationPoint(-0.5F, 9F, 3.2F);
        setRotation(Seat2, -0.0650484F, 0F, 0F);
    	
          this.RightHindLeg1.rotateAngleX = rightFemur + MathHelper.cos(par2 * 0.4662F) * 1.4F * par3;
          this.LeftHindLeg1.rotateAngleX = leftFemur + MathHelper.cos(par2 * 0.4662F + (float)Math.PI) * 1.4F * par3;
          this.RightLeg.rotateAngleX = MathHelper.cos(par2 * 0.4662F + (float)Math.PI) * 1.4F * par3;
          this.LeftLeg.rotateAngleX = MathHelper.cos(par2 * 0.4662F) * 1.4F * par3;
      }
      }else if(entityzertum.hasEvolved()){
          if (entityzertum.isSitting()) //TODO
          {
              MidSection.setRotationPoint(-1F, 7.5F, -8F);
              setRotation(MidSection, -0.3032477F, 0F, 0F);
              Pelvis.setRotationPoint(-1F, 9.8F, -1F);
              setRotation(Pelvis, -0.2974289F, 0F, 0F);
              TailPart1.setRotationPoint(0F, 11F, 6F);
              setRotation(TailPart1, -0.3346075F, 0F, 0F);
              TailPart2.setRotationPoint(0F, -0.2F, 10F);
              setRotation(TailPart2, -0.3948578F, 0F, 0F);  
              TailPart3.setRotationPoint(0F, 0F, 10.8F);
              setRotation(TailPart3, 0.2974289F, 0F, 0F);
              
              LeftFemur.setRotationPoint(1.5F, 6.7F, 0F);
              LeftFemur.rotateAngleX = -0.3892433F;
              LeftTibia.setRotationPoint(0F, 7.5F, -0.2F);
              setRotation(LeftTibia, 0.3892433F, 0F, 0F);
              LeftMetatarsus.setRotationPoint(0F, 0F, 7.5F);
              setRotation(LeftMetatarsus, -0.1289922F, 0F, 0F);
              LeftClawRPart1.setRotationPoint(0F, 8.5F, 0F);
              setRotation(LeftClawRPart1, 0F, 0.5159687F, 0F);
              LeftClawRPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(LeftClawRPart2, 1.16093F, -0.0259717F, 0F);
              LeftClawMPart1.setRotationPoint(1.5F, 8.5F, 0F);
              setRotation(LeftClawMPart1, 0F, 0F, 0F);
              LeftClawMPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(LeftClawMPart2, 1.16093F, 0F, 0F);
              LeftClawLPart1.setRotationPoint(3F, 8.5F, 0F);
              setRotation(LeftClawLPart1, 0F, -0.5159717F, 0F);
              LeftClawLPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(LeftClawLPart2, 1.16093F, 0.0059717F, 0F);
              
              RightFemur.setRotationPoint(-2.5F, 6.7F, 0F);
              RightFemur.rotateAngleX = -0.3892433F;
              RightTibia.setRotationPoint(0F, 7.5F, -0.2F);
              setRotation(RightTibia, 0.3892433F, 0F, 0F);
              RightMetatarsus.setRotationPoint(0F, 0F, 7.5F);
              setRotation(RightMetatarsus, -0.1289922F, 0F, 0F);
              RightClawRPart1.setRotationPoint(-2F, 8.5F, 0F);
              setRotation(RightClawRPart1, 0F, 0.5159687F, 0F);
              RightClawRPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(RightClawRPart2, 1.16093F, -0.0259717F, 0F);
              RightClawMPart1.setRotationPoint(-0.5F, 8.5F, 0F);
              setRotation(RightClawMPart1, 0F, 0F, 0F);
              RightClawMPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(RightClawMPart2, 1.16093F, 0F, 0F);
              RightClawLPart1.setRotationPoint(1F, 8.5F, 0F);
              setRotation(RightClawLPart1, 0F, -0.5159717F, 0F);
              RightClawLPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(RightClawLPart2, 1.16093F, 0.0059717F, 0F);
              EPad1.setRotationPoint(0F, 4.7F, -5.5F);
              setRotation(EPad1, -0.2230717F, 0F, 0F);
              EPad2.setRotationPoint(0F, 5F, -4.5F);
              setRotation(EPad2, -0.2230717F, 0F, 0F);
              EPad3.setRotationPoint(-0.5F, 5.4F, -2.8F);
              setRotation(EPad3, -0.3346075F, 0F, 0F);
              EPad4.setRotationPoint(0F, 6.7F, 0.8F);
              setRotation(EPad4, -0.3346075F, 0F, 0F);
              EPadPart1.setRotationPoint(1.5F, 4.5F, -6.5F);
              setRotation(EPadPart1, -0.2230717F, 0F, 0F);
              EPadPart2.setRotationPoint(-1.5F, 4.5F, -6.5F);
              setRotation(EPadPart2, -0.2230717F, 0F, 0F);
              ERope1.setRotationPoint(2.8F, 5.6F, -3F);
              setRotation(ERope1, 0F, 0F, 0F);
              EMetal1.setRotationPoint(2.8F, 11.6F, -3F);
              setRotation(EMetal1, 0F, 0F, 0F);
              ERope2.setRotationPoint(-2.8F, 5.6F, -3F);
              setRotation(ERope2, 0F, 0F, 0F);
              EMetal2.setRotationPoint(-2.8F, 11.6F, -3F);
              setRotation(EMetal2, 0F, 0F, 0F);
              ESeat1.setRotationPoint(0F, 4.4F, -4.5F);
              setRotation(ESeat1, -0.2230717F, 0F, 0F);
              ESeat2.setRotationPoint(0F, 5.9F, 0.2F);
              setRotation(ESeat2, -0.3346075F, 0F, 0F);
          }else{
              MidSection.setRotationPoint(-1F, 7.5F, -8F);
              setRotation(MidSection, -0.0429974F, 0F, 0F);
              Pelvis.setRotationPoint(-1F, 7.8F, 0F);
              setRotation(Pelvis, 0F, 0F, 0F);
              TailPart1.setRotationPoint(0F, 7F, 6F);
              setRotation(TailPart1, -0.3346075F, 0F, 0F);
              TailPart2.setRotationPoint(0F, -0.2F, 10F);
              setRotation(TailPart2, -0.3948578F, 0F, 0F);
              TailPart3.setRotationPoint(0F, 0F, 10.8F);
              setRotation(TailPart3, 0.2974289F, 0F, 0F);
              LeftFemur.setRotationPoint(1.5F, 5.7F, 0F);
              setRotation(LeftFemur, 0F, 0F, 0F);
              LeftTibia.setRotationPoint(0F, 7.7F, 0F);
              setRotation(LeftTibia, 0F, 0F, 0F);
              LeftMetatarsus.setRotationPoint(0F, -0.02F, 8F);
              setRotation(LeftMetatarsus, -0.1289922F, 0F, 0F);
              LeftClawRPart1.setRotationPoint(0F, 9F, 0F);
              setRotation(LeftClawRPart1, 0F, 0.5159687F, 0F);
              LeftClawRPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(LeftClawRPart2, 1.16093F, -0.0259717F, 0F);
              LeftClawMPart1.setRotationPoint(1.5F, 9F, 0F);
              setRotation(LeftClawMPart1, 0F, 0F, 0F);
              LeftClawMPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(LeftClawMPart2, 1.16093F, 0F, 0F);
              LeftClawLPart1.setRotationPoint(3F, 9F, 0F);
              setRotation(LeftClawLPart1, 0F, -0.5159717F, 0F);
              LeftClawLPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(LeftClawLPart2, 1.16093F, 0.0059717F, 0F);
              RightFemur.setRotationPoint(-2.5F, 5.7F, 0F);
              RightFemur.rotateAngleX = 0F;
              RightTibia.setRotationPoint(0F, 7.7F, 0F);
              setRotation(RightTibia, 0F, 0F, 0F);
              RightMetatarsus.setRotationPoint(0F, -0.02F, 8F);
              setRotation(RightMetatarsus, -0.1289922F, 0F, 0F);
              RightClawRPart1.setRotationPoint(-2F, 9F, 0F);
              setRotation(RightClawRPart1, 0F, 0.5159687F, 0F);
              RightClawRPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(RightClawRPart2, 1.16093F, -0.0259717F, 0F);
              RightClawMPart1.setRotationPoint(-0.5F, 9F, 0F);
              setRotation(RightClawMPart1, 0F, 0F, 0F);
              RightClawMPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(RightClawMPart2, 1.16093F, 0F, 0F);
              RightClawLPart1.setRotationPoint(1F, 9F, 0F);
              setRotation(RightClawLPart1, 0F, -0.5159717F, 0F);
              RightClawLPart2.setRotationPoint(0F, 0F, 0F);
              setRotation(RightClawLPart2, 1.16093F, 0.0059717F, 0F);
              //Saddle\\
              EPad1.setRotationPoint(0F, 4.5F, -5.5F);
              setRotation(EPad1, 0F, 0F, 0F);
              EPad2.setRotationPoint(0F, 4.5F, -4.5F);
              setRotation(EPad2, 0F, 0F, 0F);
              EPad3.setRotationPoint(-0.5F, 4.5F, -2.8F);
              setRotation(EPad3, 0F, 0F, 0F);
              EPad4.setRotationPoint(0F, 4.5F, 1.1F);
              setRotation(EPad4, 0F, 0F, 0F);
              EPadPart1.setRotationPoint(1.5F, 4.5F, -6.5F);
              setRotation(EPadPart1, 0F, 0F, 0F);
              EPadPart2.setRotationPoint(-1.5F, 4.5F, -6.5F);
              setRotation(EPadPart2, 0F, 0F, 0F);
              ERope1.setRotationPoint(2.8F, 4.6F, -3F);
              setRotation(ERope1, 0F, 0F, 0F);
              EMetal1.setRotationPoint(2.8F, 10.6F, -3F);
              setRotation(EMetal1, 0F, 0F, 0F);
              ERope2.setRotationPoint(-2.8F, 4.6F, -3F);
              setRotation(ERope2, 0F, 0F, 0F);
              EMetal2.setRotationPoint(-2.8F, 10.6F, -3F);
              setRotation(EMetal2, 0F, 0F, 0F);
              ESeat1.setRotationPoint(0F, 4F, -4.5F);
              setRotation(ESeat1, 0F, 0F, 0F);
              ESeat2.setRotationPoint(0F, 4F, 0.2F);
              setRotation(ESeat2, 0F, 0F, 0F);
              
              System.out.println("Is Spring? = " + entityzertum.isSprinting());
              
              if(entityzertum.isSprinting()){
                  updateDistanceMovedTotal(par1EntityLivingBase);
                  cycleIndex = (int) ((getDistanceMovedTotal(par1EntityLivingBase)*CYCLES_PER_BLOCK)%undulationCycle.length);
                  //System.out.println("ModelZertum setRotationAngles(), distanceMoved ="+getDistanceMovedTotal(par7Entity)+", cycleIndex ="+cycleIndex);
                  LeftFemur.rotateAngleX = degToRad(undulationCycle[cycleIndex][0]) ;
              }else{
                  this.RightHumerus.rotateAngleX = 0.3869765F + MathHelper.cos(par2 * 0.4962F) * 0.5F * par3;
                  this.LeftHumerus.rotateAngleX = 0.3869765F + MathHelper.cos(par2 * 0.3962F + (float)Math.PI) * 0.5F * par3;
                  this.RightFemur.rotateAngleX = MathHelper.cos(par2 * 0.4062F) * 0.5F * par3;
                  this.LeftFemur.rotateAngleX =  MathHelper.cos(par2 * 0.3362F + (float)Math.PI) * 0.5F * par3;
              }
          }
      }
  
      this.Head.rotateAngleZ = entityzertum.getInterestedAngle(par4) + entityzertum.getShakeAngle(par4, 0.0F);
      this.Mane1.rotateAngleZ = entityzertum.getShakeAngle(par4, -0.08F);
      this.Torso.rotateAngleZ = entityzertum.getShakeAngle(par4, -0.16F);
      this.Tail1.rotateAngleZ = entityzertum.getShakeAngle(par4, -0.32F);
      
      this.TopJawCenter.rotateAngleX = 0.2288904F - 0.45707964F * f11;
      this.BottomJawCenter.rotateAngleX = 0.2288904F + 0.45707964F * f11;
  }
  
  
  private void setRotation(ModelRenderer model, float x, float y, float z)
  {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
  }
  
  @Override
  public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6, Entity par7Entity)
  {
    super.setRotationAngles(par1, par2, par3, par4, par5, par6, par7Entity);
    this.Head.rotateAngleX = par5 / (280F / (float)Math.PI);
    this.Head.rotateAngleY = par4 / (180F / (float)Math.PI);
    this.Neck.rotateAngleX = vertebrae + par5 / (280F / (float)Math.PI);
    this.Mane2.rotateAngleX = mane2StartingRotation + par5 / (280F / (float)Math.PI);
    this.Mane1.rotateAngleY = par4 / (180F / (float)Math.PI);
  }
  
  protected void updateDistanceMovedTotal(Entity parEntity) 
  {
      distanceMovedTotal += parEntity.getDistance(parEntity.prevPosX, parEntity.prevPosY, parEntity.prevPosZ);
  }
      
  protected double getDistanceMovedTotal(Entity parEntity) 
  {
      return (distanceMovedTotal);
  }
  
  protected float degToRad(float degrees)
  {
      return degrees * (float)Math.PI / 180 ;
  }
}

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • If there is no such folder, then it refers to another issue   Create a new world with the same settings - then copy level.dat level.dat_old and session.lock from the new world to the broken one Delete the new world and test the broken one again    
    • You are using create 6.0.6 So one or more create addons are not compatible with it Remove all Create addons and test it again If this works, add the addons one by one If not, add the new crash-report       Add crash-reports with sites like https://mclo.gs/  
    • This is the main problem area, however I've already updated my graphics drivers [09:55:10] [main/WARN]: Mod file C:\Users\raypr\curseforge\minecraft\Install\libraries\net\minecraftforge\fmlcore\1.20.1-47.4.0\fmlcore-1.20.1-47.4.0.jar is missing mods.toml file [09:55:10] [main/WARN]: Mod file C:\Users\raypr\curseforge\minecraft\Install\libraries\net\minecraftforge\javafmllanguage\1.20.1-47.4.0\javafmllanguage-1.20.1-47.4.0.jar is missing mods.toml file [09:55:10] [main/WARN]: Mod file C:\Users\raypr\curseforge\minecraft\Install\libraries\net\minecraftforge\lowcodelanguage\1.20.1-47.4.0\lowcodelanguage-1.20.1-47.4.0.jar is missing mods.toml file [09:55:10] [main/WARN]: Mod file C:\Users\raypr\curseforge\minecraft\Install\libraries\net\minecraftforge\mclanguage\1.20.1-47.4.0\mclanguage-1.20.1-47.4.0.jar is missing mods.toml file
    • [09:55:08] [main/INFO]: ModLauncher running: args [--username, RayPry, --version, forge-47.4.0, --gameDir, C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ, --assetsDir, C:\Users\raypr\curseforge\minecraft\Install\assets, --assetIndex, 5, --uuid, fbb29d2614504f7d9b01434af9f7bb0e, --accessToken, ????????, --clientId, NTdlYmZmNTUtODY2ZC00NGZkLTg2NzEtZTkxMThmNmY1NmM3, --xuid, 2535429034718815, --userType, msa, --versionType, release, --width, 1024, --height, 768, --quickPlayPath, C:\Users\raypr\curseforge\minecraft\Install\quickPlay\java\1758030906375.json, --launchTarget, forgeclient, --fml.forgeVersion, 47.4.0, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [09:55:08] [main/INFO]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.15 by Microsoft; OS Windows 11 arch amd64 version 10.0 [09:55:09] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow [09:55:09] [main/INFO]: Trying GL version 4.6 [09:55:10] [main/INFO]: Requested GL version 4.6 got version 4.6 [09:55:10] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/raypr/curseforge/minecraft/Install/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%23100!/ Service=ModLauncher Env=CLIENT [09:55:10] [pool-2-thread-1/INFO]: GL info: NVIDIA GeForce RTX 3050 Laptop GPU/PCIe/SSE2 GL version 4.6.0 NVIDIA 581.29, NVIDIA Corporation [09:55:10] [main/INFO]: Found mod file additional_recipes-1.5.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file AE2 Tools Complement 1.20.1-1.0.4.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file alexscaves-2.0.2.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file alloyed-1.20.1-c6.0.0-v2.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Applied-Mekanistics-1.4.2.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file appliede-0.14.3.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file appliedenergistics2-forge-15.4.8.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file AppliedFlux-1.20-1.3.2-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file appliedschematicannon-1.0.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file appliedsorting-forge-1.20.1-v1.0.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file architectury-9.2.14-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file badpackets-forge-0.4.3.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file balm-forge-1.20.1-7.3.35-all.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file biomancy-forge-1.20.1-2.8.19.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Botania-1.20.1-450-FORGE.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file botarium-forge-1.20.1-2.3.4.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file caelus-forge-3.2.0+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file cbabo V1.1 forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file citadel-2.6.2-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file cloth-config-11.1.136-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file cofh_core-1.20.1-11.0.2.56.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file compressed_create_recipes-1.2.4.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file configuration-forge-1.20.1-3.1.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file copycats-3.0.2+mc.1.20.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file cratestuff-0.1.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Create Encased-1.20.1-1.7.2-fix1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Create Quality of Life-1.20.1-1.6.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create-1.20.1-6.0.6.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Create-DnDesire-1.20.1-0.1b.Release-Early-Dev.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create-metalwork-1.20.1-1.0.11-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create-mob-spawners-1.20.1-3.1.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create-new-age-forge-1.20.1-1.1.4.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create-stuff-additions1.20.1_v2.1.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_alexscaves_compat-1.5.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_cardboarded_conveynience-1.20.1-0.0.3.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_connected-1.1.7-mc1.20.1-all.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_easy_structures-0.2-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_enchantment_industry-1.3.3-for-create-6.0.6.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_factory_logistics-1.20.1-1.4.6.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_jetpack-forge-4.4.2.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_jetpack_curios-1.2.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_kart-2.3.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_logistics-1.20.1-0.0.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_ltab-3.0.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_mecanical_extruder-1.20.1-1.6.11-6.0.6.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_mechanical_chicken-1.20.1-1.1.5-6.0.2.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_misc_and_things_ 1.20.1_4.0A.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_mobile_packages-1.20.1-0.5.5.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_netherless-1.20.1-1.3.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_optical-0.3.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_oxidized-0.1.2.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_power_loader-2.0.3-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_recycle_1.0.2_forge_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_rustic_structures-1.0.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_sabers-1.20.1-1.3.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_security-0.1.2-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_structures_arise-162.35.34-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_ultimate_factory-2.1.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_waystones_recipes-1.0.1.b.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file create_wt-forge-1.20.1-1.0.7.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createaddition-1.20.1-1.3.2.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createair-1.0.5.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createappliedkinetics-1.5.1-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createbb-1.20.1-3.2.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createchunkloading-1.6.0-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createcobblestone-1.4.5+forge-1.20.1-106.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createcompounds-1.0.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createcontraptionterminals-1.20-1.2.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createdieselgenerators-1.20.1-1.3.5.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createenchantablemachinery-3.4.1+mc1.20.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createenderlink-1.4.0+mc1.20.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createendertransmission-2.1.0-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createfiltersanywhere-1.5.0-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createlowheated-forge-1.20.1-6.0.6-4.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createmetallurgy-0.0.7-HF-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createnewbeg-0.1.0-1.20.1-c6.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createnuclear-1.3.0-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createoreexcavation-1.20-1.6.4.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createrailwaysnavigator-forge-1.20.1-beta-0.8.4-C6.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createsifter-1.20.1-1.8.6-6.0.6.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createstockbridge-1.20-0.1.5.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file CreateTankDefenses v0.80.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createteleporters2.3-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createultimine-1.20.1-forge-1.1.2.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file createutilities-0.3.2+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Crystal-Clear-2.1-Beta-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file curios-forge-5.14.1+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file delivery_director-1.0.1-all.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file design_decor-0.4.0b-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file dynamicvillage-v0.4-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file easy_applied_energestics_start-8.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file edible_stuff-2.1.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file embeddium-0.3.31+mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file extendedgears-2.1.1-1.20.1-0.5.1.f-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file extra_gauges-1.1.2-all.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file FarmersDelight-1.20.1-1.2.9.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file framework-forge-1.20.1-0.7.15.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file ftb-library-forge-2001.2.10.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file ftb-quests-forge-2001.4.14.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file ftb-teams-forge-2001.3.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file ftb-ultimine-forge-2001.1.7.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file fusion-1.2.11a-forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file garnished-2.1.2+1.20.1-neoforged.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file geckolib-forge-1.20.1-4.7.4.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Glodium-1.20-1.5-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file guideme-20.1.12.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file irons_spellbooks-1.20.1-3.4.0.11.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file kotlinforforge-4.11.0-all.jar of type LIBRARY with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file kubejs-create-forge-2001.3.0-build.8.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file kubejs-forge-2001.6.5-build.16.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file mechanical_botany-1.0.5+1.20.1-neoforged.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Mekanism-1.20.1-10.4.16.80.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file molten_metals-1.20.1-0.1.4-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file molten_vents-1.20.1-2.0.9.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file moonlight-1.20-2.16.10-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file nocube's_create_compact_exp_1.0.4_forge_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Patchouli-1.20.1-84.1-FORGE.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file pattern_schematics-1.2.3+forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file petrolpark-1.20.1-1.4.11.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file petrolsparts-1.20.1-1.2.3-all.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file player-animation-lib-forge-1.0.2-rc1+1.20.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file ProjectE-1.20.1-PE1.0.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file PuzzlesLib-v8.1.33-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file rechiseled-1.1.6-forge-mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file rechiseledcreate-1.0.2b-forge-mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file resourcefulconfig-forge-1.20.1-2.1.3.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file resourcefullib-forge-1.20.1-2.1.29.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file rhino-forge-2001.2.3-build.10.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file ritchiesprojectilelib-2.1.0+mc.1.20.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file sebastrnlib-4.0.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file SmartBrainLib-forge-1.20.1-1.15.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file smartcrafter-0.2.0.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file sophisticatedcore-1.20.1-1.2.89.1147.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file sophisticatedstorage-1.20.1-1.4.4.1286.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file Steam_Rails-1.6.7+forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file steampowered-1.20.1-3.0.2.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file supermartijn642configlib-1.1.8-forge-mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file supermartijn642corelib-1.1.18-forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file ThinAir-v8.1.7-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file timeclock-3.0.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file toms_storage-1.20-1.7.1.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file tools_complement-1.20.1-4.0.0.25.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file vintageimprovements-1.20.1-0.2.0.3.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/INFO]: Found mod file waystones-forge-1.20.1-14.1.17.jar of type MOD with provider {mods folder locator at C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods} [09:55:10] [main/WARN]: Mod file C:\Users\raypr\curseforge\minecraft\Install\libraries\net\minecraftforge\fmlcore\1.20.1-47.4.0\fmlcore-1.20.1-47.4.0.jar is missing mods.toml file [09:55:10] [main/WARN]: Mod file C:\Users\raypr\curseforge\minecraft\Install\libraries\net\minecraftforge\javafmllanguage\1.20.1-47.4.0\javafmllanguage-1.20.1-47.4.0.jar is missing mods.toml file [09:55:10] [main/WARN]: Mod file C:\Users\raypr\curseforge\minecraft\Install\libraries\net\minecraftforge\lowcodelanguage\1.20.1-47.4.0\lowcodelanguage-1.20.1-47.4.0.jar is missing mods.toml file [09:55:10] [main/WARN]: Mod file C:\Users\raypr\curseforge\minecraft\Install\libraries\net\minecraftforge\mclanguage\1.20.1-47.4.0\mclanguage-1.20.1-47.4.0.jar is missing mods.toml file [09:55:10] [main/INFO]: Found mod file fmlcore-1.20.1-47.4.0.jar of type LIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@344426bf [09:55:10] [main/INFO]: Found mod file javafmllanguage-1.20.1-47.4.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@344426bf [09:55:10] [main/INFO]: Found mod file lowcodelanguage-1.20.1-47.4.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@344426bf [09:55:10] [main/INFO]: Found mod file mclanguage-1.20.1-47.4.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@344426bf [09:55:10] [main/INFO]: Found mod file client-1.20.1-20230612.114412-srg.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@344426bf [09:55:10] [main/INFO]: Found mod file forge-1.20.1-47.4.0-universal.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@344426bf [09:55:11] [main/WARN]: Attempted to select a dependency jar for JarJar which was passed in as source: architectury. Using Mod File: C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ\mods\architectury-9.2.14-forge.jar [09:55:11] [main/INFO]: Found 18 dependencies adding them to mods collection [09:55:11] [main/INFO]: Found mod file dragonlib-forge-1.20.1-2.2.24.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file kuma-api-forge-20.1.11+1.20.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file yabn-1.0.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file kfflang-4.11.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file Ponder-Forge-1.20.1-1.0.80.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file Registrate-MC1.20-1.3.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file conditional-mixin-forge-0.6.4.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file flightlib-forge-2.1.0.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file mclib-20.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file puzzlesaccessapi-forge-20.1.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file mixinextras-forge-0.5.0-rc.4.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file kfflib-4.11.0.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file kffmod-4.11.0.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file create_factory_abstractions-1.20.1-1.4.6.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file flywheel-forge-1.20.1-1.0.4.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file bytecodecs-1.0.2.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file h2-mvstore-2.3.232.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:11] [main/INFO]: Found mod file MixinExtras-0.5.0-rc.4.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@2b03d52f [09:55:13] [main/INFO]: Compatibility level set to JAVA_17 [09:55:13] [main/INFO]: Launching target 'forgeclient' with arguments [--version, forge-47.4.0, --gameDir, C:\Users\raypr\curseforge\minecraft\Instances\BRKN SCPT GNZ, --assetsDir, C:\Users\raypr\curseforge\minecraft\Install\assets, --uuid, fbb29d2614504f7d9b01434af9f7bb0e, --username, RayPry, --assetIndex, 5, --accessToken, ????????, --clientId, NTdlYmZmNTUtODY2ZC00NGZkLTg2NzEtZTkxMThmNmY1NmM3, --xuid, 2535429034718815, --userType, msa, --versionType, release, --width, 1024, --height, 768, --quickPlayPath, C:\Users\raypr\curseforge\minecraft\Install\quickPlay\java\1758030906375.json] [09:55:13] [main/WARN]: Reference map 'mixins.create_security.refmap.json' for mixins.create_security.json could not be read. If this is a development environment you can ignore this message [09:55:13] [main/INFO]: Loaded configuration file for Embeddium: 199 options available, 0 override(s) found [09:55:13] [main/INFO]: Searching for graphics cards... [09:55:14] [main/INFO]: Found graphics card: GraphicsAdapterInfo[vendor=UNKNOWN, name=Meta Virtual Monitor, version=DriverVersion=17.12.55.198] [09:55:14] [main/INFO]: Found graphics card: GraphicsAdapterInfo[vendor=NVIDIA, name=NVIDIA GeForce RTX 3050 Laptop GPU, version=DriverVersion=32.0.15.8129] [09:55:14] [main/INFO]: Found graphics card: GraphicsAdapterInfo[vendor=INTEL, name=Intel(R) UHD Graphics, version=DriverVersion=31.0.101.4502] [09:55:14] [main/WARN]: Embeddium has applied one or more workarounds to prevent crashes or other issues on your system: [NVIDIA_THREADED_OPTIMIZATIONS] [09:55:14] [main/WARN]: This is not necessarily an issue, but it may result in certain features or optimizations being disabled. You can sometimes fix these issues by upgrading your graphics driver. [09:55:14] [main/WARN]: Reference map 'createcobblestone-common-refmap.json' for createcobblestone-common.mixins.json could not be read. If this is a development environment you can ignore this message [09:55:14] [main/WARN]: Reference map 'tfmg.refmap.json' for design_decor.mixins.json could not be read. If this is a development environment you can ignore this message [09:55:14] [main/WARN]: Reference map 'createappliedkinetics.refmap.json' for createappliedkinetics.mixins.json could not be read. If this is a development environment you can ignore this message [09:55:14] [main/WARN]: Reference map 'puzzlesaccessapi.common.refmap.json' for puzzlesaccessapi.common.mixins.json could not be read. If this is a development environment you can ignore this message [09:55:14] [main/WARN]: Reference map 'molten_metals-common-refmap.json' for molten_metals-common.mixins.json could not be read. If this is a development environment you can ignore this message [09:55:14] [main/WARN]: Reference map 'steampowered.refmap.json' for steampowered.mixins.json could not be read. If this is a development environment you can ignore this message [09:55:14] [main/WARN]: Reference map 'createcompounds.refmap.json' for createcompounds.mixins.json could not be read. If this is a development environment you can ignore this message [09:55:14] [main/WARN]: Reference map 'pattern_schematics-common-refmap.json' for pattern_schematics.common.mixins.json could not be read. If this is a development environment you can ignore this message [09:55:14] [main/INFO]: Loading 154 mods:     - additional_recipes 1.0.0     - ae2 15.4.8     - ae2_tools 1.0.4     - alexscaves 2.0.2     - alloyed 2.0+1.20.1     - appflux 1.20-1.3.2-forge     - appliede 0.14.3     - appliedschematicannon 1.0.1     - appliedsorting 1.0.0     - appmek 1.4.2     - architectury 9.2.14     - badpackets 0.4.3     - balm 7.3.35         \-- kuma_api 20.1.11     - biomancy 2.8.19.0     - botania 1.20.1-450-FORGE     - botarium 2.3.4     - caelus 3.2.0+1.20.1     - citadel 2.6.2     - cloth_config 11.1.136     - cofh_core 11.0.2     - compressed_create_recipes 1.2.4     - configuration 3.1.0     - copycats 3.0.2+mc.1.20.1-forge     - cratestuff 0.1.1     - create 6.0.6         |-- flywheel 1.0.4         \-- ponder 1.0.80     - create_alexscaves_compat 1.5.1     - create_buffers__beams_overhauled 1.0.0     - create_cardboarded_conveynience 0.0.3     - create_connected 1.1.7-mc1.20.1     - create_crush_everything 1.0.2     - create_dd 0.1b.Release-Early-Dev     - create_easy_structures 0.2     - create_enchantment_industry 1.3.3-for-create-6.0.6     - create_factory_logistics 1.4.6         \-- create_factory_abstractions 1.4.6     - create_jetpack 4.4.2         \-- flightlib 2.1.0     - create_jetpack_curios 1.2.0     - create_kart 2.3.0     - create_logistics 1.0.0     - create_ltab 3.0.0     - create_mechanical_chicken 1.20.1-1.1.5-6.0.2     - create_mechanical_extruder 1.20.1-1.6.10-6.0.6     - create_mob_spawners 3.1.0     - create_mobile_packages 0.5.5     - create_netherless 1.3.0     - create_new_age 1.1.4     - create_optical 0.3.0     - create_oxidized 0.1.2     - create_pattern_schematics 1.2.3+forge-1.20.1     - create_power_loader 2.0.3-mc1.20.1     - create_rustic_structures 1.0.0     - create_sa 2.1.0     - create_sabers 1.3.0     - create_security 0.1.2     - create_structures_arise 162.35.34     - create_tank_defenses 0.80     - create_things_and_misc 1.0.0     - create_ultimate_factory 2.1.0     - create_waystones_recipes 1.0.1.b     - create_wt 1.0.7     - createaddition 1.20.1-1.3.2     - createair 1.0.5     - createappliedkinetics 1.5.1-1.20.1     - createbb 3.1.1     - createcasing 1.7.2-fix1     - createchunkloading 1.6.0     - createcobblestone 1.4.5+forge-1.20.1-106     - createcompounds 1.0.0     - createcontraptionterminals 1.2.0     - createdieselgenerators 1.20.1-1.3.5     - createenchantablemachinery 3.4.1     - createenderlink 1.4.0     - createendertransmission 2.1.0-1.20.1     - createfiltersanywhere 1.5.0         \-- conditional_mixin 0.6.4     - createlowheated 1.20.1-6.0.6-4     - createmetallurgy 0.0.7-HF-1.20.1     - createmetalwork 1.20.1-1.0.11-forge     - createnewbeg 0.1.0-1.20.1-c6     - createnuclear 1.3.0     - createoreexcavation 1.6.4     - createqol 1.5.1-fix2     - createrailwaysnavigator 1.20.1-beta-0.8.4-C6         \-- dragonlib 1.20.1-2.2.24     - createsifter 1.20.1-1.8.6-6.0.6     - createstockbridge 0.1.5     - createteleporters 2.2     - createultimine 1.1.2     - createutilities 0.3.2+1.20.1     - crystal_clear 2.1-Beta     - curios 5.14.1+1.20.1     - delivery_director 1.0.1     - design_decor 0.4.0b     - dynamicvillage 0.4     - easy_applied_energestics_start 1.0     - edible_stuff 2.0.0     - embeddium 0.3.31+mc1.20.1         \-- rubidium 0.7.1     - extendedgears 2.1.1-1.20.1-0.5.1.f-forge     - extra_gauges 1.1.2     - farmersdelight 1.20.1-1.2.9     - forge 47.4.0     - framework 0.7.15     - ftblibrary 2001.2.10     - ftbquests 2001.4.14     - ftbteams 2001.3.1     - ftbultimine 2001.1.7     - fusion 1.2.11+a     - garnished 2.1.2     - geckolib 4.7.4     - glodium 1.20-1.5-forge     - guideme 20.1.12     - irons_spellbooks 1.20.1-3.4.0.11     - kotlinforforge 4.11.0     - kubejs 2001.6.5-build.16     - kubejs_create 2001.3.0-build.8     - mechanical_botany 1.0.5     - mekanism 10.4.16     - minecraft 1.20.1     - molten_metals 1.20.1-0.1.4     - molten_vents 2.0.9     - moonlight 1.20-2.16.10     - nocubescreateexp 1.0.4     - patchouli 1.20.1-84.1-FORGE     - petrolpark 1.4.11     - petrolsparts 1.2.3     - playeranimator 1.0.2-rc1+1.20     - projecte 1.0.1     - puzzleslib 8.1.33         \-- puzzlesaccessapi 20.1.1     - railways 1.6.7+forge-mc1.20.1     - rechiseled 1.1.6     - rechiseledcreate 1.0.2+b     - resourcefulconfig 2.1.3     - resourcefullib 2.1.29     - rhino 2001.2.3-build.10     - ritchiesprojectilelib 2.1.0     - sebastrnlib 4.0.0     - smartbrainlib 1.15     - smartcrafter 0.2.0     - sophisticatedcore 1.2.89.1147     - sophisticatedstorage 1.4.4.1286     - steampowered 1.20.1-3.0.2     - supermartijn642configlib 1.1.8     - supermartijn642corelib 1.1.18     - thinair 8.1.7     - timeclock 3.0.0     - toms_storage 1.7.1     - tools_complement 4.0.0     - vintageimprovements 1.20.1-0.2.0.3     - waystones 14.1.17
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.