{
    "format_version": "1.8.0",
    "minecraft:client_entity": {
        "description": {
            "identifier": "minecraft:shulker",
            "materials": {
                "default": "shulker",
                "UP_box": "entity_emissive_alpha"
            },
            "textures": {
                "UP_box": "models/entity/UP_box",
                "transparent": "models/entity/transparent",
                "undyed": "textures/entity/shulker/shulker_undyed",
                "white": "textures/entity/shulker/shulker_white",
                "orange": "textures/entity/shulker/shulker_orange",
                "magenta": "textures/entity/shulker/shulker_magenta",
                "light_blue": "textures/entity/shulker/shulker_light_blue",
                "yellow": "textures/entity/shulker/shulker_yellow",
                "lime": "textures/entity/shulker/shulker_lime",
                "pink": "textures/entity/shulker/shulker_pink",
                "gray": "textures/entity/shulker/shulker_gray",
                "silver": "textures/entity/shulker/shulker_silver",
                "cyan": "textures/entity/shulker/shulker_cyan",
                "purple": "textures/entity/shulker/shulker_purple",
                "blue": "textures/entity/shulker/shulker_blue",
                "brown": "textures/entity/shulker/shulker_brown",
                "green": "textures/entity/shulker/shulker_green",
                "red": "textures/entity/shulker/shulker_red",
                "black": "textures/entity/shulker/shulker_black"
            },
            "geometry": {
                "default": "geometry.shulker",
                "target_rotate": "geometry.target_rotate_28",
                "block": "geometry.block_28"
            },
            "spawn_egg": {
                "texture": "spawn_egg",
                "texture_index": 34
            },
            "scripts": {
                "pre_animation": [
                    "variable.Shulker.LidPositionFactor = 180 * (0.5 + variable.Shulker.PeekAmount);",
                    "variable.Shulker.LidrotationFactor = -1 + Math.sin(180 * (0.5 + variable.Shulker.PeekAmount));",
                    "variable.Shulker.UpFacing = variable.Shulker.FacingDirection == 1;",
                    "variable.Shulker.NorthFacing = variable.Shulker.FacingDirection == 2;",
                    "variable.Shulker.SouthFacing = variable.Shulker.FacingDirection == 3;",
                    "variable.Shulker.WestFacing = variable.Shulker.FacingDirection == 4;",
                    "variable.Shulker.EastFacing = variable.Shulker.FacingDirection == 5;",
                    "variable.Shulker.XPrerotation = variable.Shulker.UpFacing * 180 + variable.Shulker.NorthFacing * 90 - variable.Shulker.SouthFacing * 90;",
                    "variable.Shulker.ZPrerotation = variable.Shulker.NorthFacing * 180 + variable.Shulker.WestFacing * 90 - variable.Shulker.EastFacing * 90;",
                    "variable.Shulker.XOffset = -variable.Shulker.WestFacing * 7.99 + variable.Shulker.EastFacing * 7.99;",
                    "variable.Shulker.YOffset = variable.Shulker.UpFacing * 16 + variable.Shulker.NorthFacing * 7.99 + variable.Shulker.SouthFacing * 7.99 + variable.Shulker.WestFacing * 7.99 + variable.Shulker.EastFacing * 7.99;",
                    "variable.Shulker.ZOffset = variable.Shulker.NorthFacing * 7.99 - variable.Shulker.SouthFacing * 7.99;"
                ]
            },
            "particle_effects": {

                "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_shulker",
				"pos_egg": "pos_shulker"
            },
            "sound_effects": {
                "mob_sound": "loud_mob.shulker.ambient"
            },

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

                "facing": "animation.shulker.facing.v1.0",
                "move": "animation.shulker.move.v1.0",
                "look_at_target": "animation.common.look_at_target"
            },
            "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"},
					{"hostile_distance": "controller.animation.hostile_distance"},
                {
                    "facing": "controller.animation.shulker.facing"}, 
					{"move": "controller.animation.shulker.move"}
            ],
            "render_controllers": [
                "controller.render.target_rotate",
                "controller.render.block",
                "controller.render.shulker"
            ]
        }
    }
}
