{
    "format_version": "1.8.0",
    "minecraft:client_entity": {
        "description": {
            "identifier": "minecraft:wolf",
            "materials": {
                "default": "wolf",
                "UP_box": "entity_emissive_alpha"
            },
            "textures": {
                "UP_box": "models/entity/UP_box",
                "transparent": "models/entity/transparent",
                "default": "textures/entity/wolf/wolf",
                "angry": "textures/entity/wolf/wolf_angry",
                "tame": "textures/entity/wolf/wolf_tame"
            },
            "geometry": {
                "default": "geometry.wolf",
                "target_rotate": "geometry.target_rotate_10",
                "block": "geometry.block_10"
            },
            "scripts": {
                "pre_animation": [
                    "variable.body_shake_angle = 0.5 * 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;"
                ]
            },
            "particle_effects": {

                "invisible": "invisible",
                "status_setup": "status_setup",
                "health_setup": "health_setup",
                "hostile_warnings": "hostile_warnings",
                "pos": "pos",
                "locate_line": "locate_line",
                "locate_mob": "locate_wolf",
				"pos_egg": "pos_wolf"
            },
            "sound_effects": {
                "mob_sound": "loud_mob.wolf.growl"
            },

            "animations": {
                "target_rotate": "animation.target_rotate",
                "camera_rotate": "animation.camera_rotate",

                "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": [
					{"1": "controller.animation.target_rotate_setup"}, 
					{"1.1": "controller.animation.camera_rotate_setup"}, 
					{"2": "controller.animation.invisible"}, 
					{"3": "controller.animation.status"}, 
					{"4": "controller.animation.health"}, 
					{"5": "controller.animation.hostile_warnings"}, 
					{"6": "controller.animation.pos"}, 
					{"locate": "controller.animation.locate"},
					{"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.target_rotate",
                "controller.render.block",
                "controller.render.wolf"
            ],
            "spawn_egg": {
                "texture": "spawn_egg",
                "texture_index": 4
            }
        }
    }
}
