{
  "format_version": "1.19.0",
  "minecraft:attachable": {
    "description": {
      "identifier": "tsu_morph:strider_morph",
      "materials": {
        "default": "entity_alphatest"
      },
      "textures": {
        "default": "textures/entity/strider/strider",
        "saddled": "textures/entity/strider/strider_saddled",
        "suffocated": "textures/entity/strider/strider_suffocated",
        "suffocated_saddled": "textures/entity/strider/strider_suffocated_saddled"
      },
      "geometry": {
        "default": "geometry.tsu_morph.strider"
      },
      "animations": {
        "look_at_target": "animation.tsu_morph.strider.look_at_target.default",
        "walk": "animation.tsu_morph.strider.walk",
        "bristle_flow": "animation.tsu_morph.strider.bristle_flow",

        "hurt_sounds": "controller.animation.tsu_morph.hurt_sounds",
        "step_sounds": "controller.animation.tsu_morph.step_sounds",
        "idle_sounds": "animation.tsu_morph.idle_sounds"
      },
      "sound_effects": {
        "step": "mob.strider.step",
        "hurt": "mob.strider.hurt",
        "idle": "mob.strider.idle"
      },
      "scripts": {
        "initialize": [
          "v.step_interval = 0.21;"
        ],
        "pre_animation": [
          "v.display_fp = c.is_first_person && !q.is_in_ui && q.is_local_player;",
          "variable.animation_speed = Math.min(query.modified_move_speed, 0.25);",
          "variable.speed = 85.9437;",
          "variable.bristle_flow=Math.cos(query.modified_distance_moved * variable.speed + 180) * variable.animation_speed;",
          "variable.bristle_range_mod=1;",
          "variable.bristle_speed_mod=1;"
        ],
        "animate": [
          "look_at_target",
          "walk",
          "bristle_flow",
          "step_sounds",
          "hurt_sounds",
          "idle_sounds"
        ]
      },
      "render_controllers": [
        {
          "controller.render.strider": "!v.display_fp"
        }
      ]
    }
  }
}