{
  "format_version": "1.8.0",
  "minecraft:client_entity": {
    "description": {
      "identifier": "minecraft:wolf",
      "materials": {
        "default": "wolf"
      },
      "textures": {
        "pale_default": "textures/entity/wolf/wolf",
        "pale_angry": "textures/entity/wolf/wolf_angry",
        "pale_tame": "textures/entity/wolf/wolf_tame",
        "ashen_default": "textures/entity/wolf/wolf_ashen",
        "ashen_angry": "textures/entity/wolf/wolf_ashen_angry",
        "ashen_tame": "textures/entity/wolf/wolf_ashen_tame",
        "black_default": "textures/entity/wolf/wolf_black",
        "black_angry": "textures/entity/wolf/wolf_black_angry",
        "black_tame": "textures/entity/wolf/wolf_black_tame",
        "chestnut_default": "textures/entity/wolf/wolf_chestnut",
        "chestnut_angry": "textures/entity/wolf/wolf_chestnut_angry",
        "chestnut_tame": "textures/entity/wolf/wolf_chestnut_tame",
        "rusty_default": "textures/entity/wolf/wolf_rusty",
        "rusty_angry": "textures/entity/wolf/wolf_rusty_angry",
        "rusty_tame": "textures/entity/wolf/wolf_rusty_tame",
        "snowy_default": "textures/entity/wolf/wolf_snowy",
        "snowy_angry": "textures/entity/wolf/wolf_snowy_angry",
        "snowy_tame": "textures/entity/wolf/wolf_snowy_tame",
        "spotted_default": "textures/entity/wolf/wolf_spotted",
        "spotted_angry": "textures/entity/wolf/wolf_spotted_angry",
        "spotted_tame": "textures/entity/wolf/wolf_spotted_tame",
        "striped_default": "textures/entity/wolf/wolf_striped",
        "striped_angry": "textures/entity/wolf/wolf_striped_angry",
        "striped_tame": "textures/entity/wolf/wolf_striped_tame",
        "woods_default": "textures/entity/wolf/wolf_woods",
        "woods_angry": "textures/entity/wolf/wolf_woods_angry",
        "woods_tame": "textures/entity/wolf/wolf_woods_tame"
      },
      "geometry": {
        "default": "geometry.wolf"
      },
      "scripts": {
        "pre_animation": [
          "variable.body_shake_angle = 0.05 * query.frame_alpha + query.shake_angle;",
          "variable.body_roll_progress = Math.clamp((variable.body_shake_angle - 0.16) / 1.8, 0, 1);",
          "variable.body_rot_z = Math.sin(variable.body_roll_progress * 180) * Math.sin(variable.body_roll_progress * 1980) * 27;",
          "variable.upper_body_roll_progress = Math.clamp((variable.body_shake_angle - 0.08) / 1.8, 0, 1);",
          "variable.upper_body_rot_z = (Math.sin(variable.upper_body_roll_progress * 180) * Math.sin(variable.upper_body_roll_progress * 1980) * 27) - variable.body_rot_z;",
          "variable.tail_roll_progress = Math.clamp((variable.body_shake_angle - 0.2) / 1.8, 0, 1);",
          "variable.tail_rot_z = (Math.sin(variable.tail_roll_progress * 180) * Math.sin(variable.tail_roll_progress * 1980) * 27) - variable.body_rot_z;",
          "variable.head_roll_progress = Math.clamp(variable.body_shake_angle / 1.8, 0, 1);",
          "variable.head_rot_z = (Math.sin(variable.head_roll_progress * 180) * Math.sin(variable.head_roll_progress * 1980) * 27) - variable.body_rot_z;"
        ]
      },
      "animations": {
        "wolf_setup": "animation.wolf.setup",
        "wolf_baby_scaling": "animation.wolf.baby_scaling",
        "wolf_look_at": "animation.common.look_at_target",
        "wolf_head_rot_z": "animation.wolf.head_rot_z",
        "wolf_tail_default": "animation.wolf.tail_default",
        "wolf_angry": "animation.wolf.angry",
        "wolf_sitting": "animation.wolf.sitting",
        "wolf_shaking": "animation.wolf.shaking",
        "wolf_leg_default": "animation.wolf.leg_default"
      },
      "animation_controllers": [
        { "wolf_setup": "controller.animation.wolf.setup" },
        { "wolf_look_at": "controller.animation.wolf.look_at" },
        { "wolf_baby_scaling": "controller.animation.wolf.baby_scaling" },
        { "wolf_head_rot_z": "controller.animation.wolf.head_rot_z" },
        { "wolf_tail_default": "controller.animation.wolf.tail_default" },
        { "wolf_angry": "controller.animation.wolf.angry" },
        { "wolf_sitting": "controller.animation.wolf.sitting" },
        { "wolf_shaking": "controller.animation.wolf.shaking" }
      ],
      "render_controllers": [
        "controller.render.wolf"
      ],
      "enable_attachables": true,
      "spawn_egg": {
        "texture": "spawn_egg_wolf"
      }
    }
  }
}
