{
    "format_version": "1.8.0",
    "minecraft:client_entity": {
        "description": {
            "identifier": "minecraft:creeper",

            "materials": {
                "default": "creeper",
                "charged": "charged_creeper",
                "UP_box": "entity_emissive_alpha"
            },
            "textures": {
                "UP_box": "models/entity/UP_box",
                "transparent": "models/entity/transparent",
                "default": "textures/entity/creeper/creeper",
                "charged": "textures/entity/creeper/creeper_armor"
            },
            "geometry": {
                "default": "geometry.creeper",
                "charged": "geometry.creeper.charged",
                "target_rotate": "geometry.target_rotate_28",
                "block": "geometry.block_28"
            },
            "spawn_egg": {
                "texture": "spawn_egg",
                "texture_index": 6
            },
            "scripts": {
                "pre_animation": [
                    "variable.wobble = Math.sin(query.swell_amount * 5730) * query.swell_amount * 0.01 + 1.0;",
                    "variable.swelling_scale1 = (Math.pow(Math.clamp(query.swell_amount, 0.0, 1.0), 4.0) * 0.4 + 1.0) * variable.wobble;",
                    "variable.swelling_scale2 = (Math.pow(Math.clamp(query.swell_amount, 0.0, 1.0), 4.0) * 0.1 + 1.0) / variable.wobble;",
                    "variable.leg_rot = Math.cos(query.modified_distance_moved * 38.17326) * 80.22 * query.modified_move_speed;",
                    "variable.flash = Math.mod(Math.Round(query.swell_amount * 10.0), 2.0);"
                ]
            },
            "particle_effects": {

                "creeper_range_setup": "creeper_range_setup",
                "invisible": "invisible",
                "status_setup": "status_setup",
                "health_setup": "health_setup",
                "hostile_warnings": "hostile_warnings",

                "pos": "pos",
                "hostile_distance_setup": "hostile_distance_setup",
                "locate_line": "locate_line",
                "locate_mob": "locate_creeper",
				"pos_egg": "pos_creeper"
            },
            "sound_effects": {
                "mob_sound": "loud_mob.creeper.say"
            },

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

                "creeper_head": "animation.common.look_at_target",
                "creeper_legs": "animation.creeper.legs",
                "creeper_swelling": "animation.creeper.swelling"
            },
            "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"},
					{"creeper_range": "controller.animation.creeper_range"}, 
					{"hostile_distance": "controller.animation.hostile_distance"}, 
					{"creeper_head": "controller.animation.creeper.head"}, 
					{"creeper_legs": "controller.animation.creeper.legs"}, 
					{"creeper_swelling": "controller.animation.creeper.swelling"}
            ],
            "render_controllers": [
                "controller.render.target_rotate",
                "controller.render.block",
                "controller.render.creeper",
                "controller.render.creeper_armor"
            ]
        }
    }
}
