{
  "format_version": "1.8.0",
  "minecraft:client_entity": {
    "description": {
      "identifier": "minecraft:shulker",
      "materials": {
	    "default": "glow",
	    "invisible": "glow_glass_blender"
	  },
      "textures": {
        "default": "textures/entity/songoku"
      },
      "geometry": {
        "default": "geometry.4songoku"
      },
      "scripts": {
        "pre_animation": [
          "variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 57.3;",
          "variable.tcos1 = -variable.tcos0;",
          "variable.attack_body_rot_y = Math.sin(Math.sqrt(variable.attack_time) * 360.0) * 11.46;",
          "variable.cos_attack_body_rot_y = Math.cos(variable.attack_body_rot_y);",
          "variable.sin_attack_body_rot_y = Math.sin(variable.attack_body_rot_y);",
          "variable.internal_swim_pos = Math.mod(query.modified_distance_moved, 26.0);",
          "variable.attack = Math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3;",
          "variable.attack2 = Math.sin(variable.attack_time * 180.0) * 57.3;",
          "variable.z_bob = Math.cos(query.life_time * 103.13244) * 2.865 + 2.865;",
          "variable.x_bob = Math.sin(query.life_time * 76.776372) * 2.865;"
        ]
      },
      "animations": {
        "look_at_target_default": "animation.humanoid.look_at_target.default",
        "move": "animation.base.move"
      },
      "animation_controllers": [
        { "look_at_target": "controller.animation.humanoid.look_at_target" },
        { "move": "controller.animation.mover.move" }
      ],
      "spawn_egg": {
        "texture": "spawn_egg",
        "texture_index": 57
      },
      "render_controllers": [ "controller.render.glow" ]
    }
  }
}