{
  "format_version": "1.10.0",
  "minecraft:client_entity": {
    "description": {
      "identifier": "hoh_bht:postman",
      "materials": {
        "default": "villager",
        "boat_invis": "slime_outer"
      },
      "textures": {
        "default": "textures/HoH/bht/entity/postman",
        "boat": "textures/HoH/bht/entity/postman_boat",
        "strider": "textures/HoH/bht/entity/postman_strider"
      },
      "geometry": {
        "default": "geometry.hohbht_postman",
        "boat": "geometry.hoh_bht.boat",
        "boat_invis": "geometry.hoh_bht.boat_invisible",
        "strider": "geometry.hoh_bht.strider"
      },
      "animations": {
        "dialogue_start": "animation.postman_conv_start",
        "dialogue_loop": "animation.postman_conv_loop",
        "dialogue_start_riding": "animation.postman_conv_start_riding",
        "dialogue_loop_riding": "animation.postman_conv_loop_riding",
        "ctrl_land": "controller.animation.hoh_bht.postman_dialogue_foot",
        "ctrl_riding": "controller.animation.hoh_bht.postman_dialogue_riding",
        "move": "animation.postman_move",
        "idle": "animation.postman_idle",
        "blink": "animation.postman_blink",
        "give": "animation.postman_give",
        "give_riding": "animation.postman_give_riding",
        "trumpet": "animation.postman_trumpet",
        "trumpet_riding": "animation.postman_trumpet_riding",
        "sit": "animation.postman_Sit",
        "walk_strider": "animation.hoh_bht.strider.walk",
        "bristle_flow_strider": "animation.hoh_bht.bristle_flow",
        "boat_row": "animation.hoh_bht.boat.sail",
        "offset_boat": "animation.hoh_bht.boat.offset",
        "offset_strider": "animation.hoh_bht.strider.offset"
      },
      "sound_effects": {
        "trumpet": "mob.hoh_bht.postman.trumpet"
      },
      "scripts": {
        "pre_animation": [
          "variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 28.65;",
          "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": [
          {
            "ctrl_land": "!query.is_in_water&&!query.is_in_lava"
          },
          {
            "ctrl_riding": "query.is_in_water||query.is_in_lava"
          },
          {
            "offset_boat": "query.is_in_water"
          },
          {
            "offset_strider": "query.is_in_lava"
          },
          "blink",
          {
            "move": "query.modified_move_speed && !query.is_in_lava && !query.is_in_water"
          },
          {
            "walk_strider": "query.modified_move_speed&&query.is_in_lava"
          },
          "bristle_flow_strider",
          {
            "boat_row": "query.modified_move_speed&&query.is_in_water"
          }
        ]
      },
      "render_controllers": [
        "controller.render.hoh_bht.postman",
        "controller.render.hoh_bht.postman_boat",
        "controller.render.hoh_bht.postman_strider",
        "controller.render.hoh_bht.postman_boat_invis"
      ],
      "spawn_egg": {
        "texture": "spawn_egg",
        "texture_index": 14
      }
    }
  }
}