{
  "format_version": "1.10.0",
  "animation_controllers": {
    "controller.animation.player.crossbow": {
      "initial_state": "default",
      "states": {
        "charge": {
          "animations": [
            "third_person_crossbow_equipped"
          ],
          "transitions": [
            {
              "default": "query.get_equipped_item_name != 'crossbow' || (query.item_remaining_use_duration <= 0.0 && !query.item_is_charged)"
            },
            {
              "hold": "query.item_is_charged"
            }
          ]
        },
        "default": {
          "transitions": [
            {
              "hold": "query.item_is_charged"
            },
            {
              "charge": "query.item_remaining_use_duration > 0.0"
            }
          ]
        },
        "hold": {
          "animations": [
            "crossbow_hold"
          ],
          "transitions": [
            {
              "default": "query.get_equipped_item_name != 'crossbow' || (query.item_remaining_use_duration <= 0.0 && !query.item_is_charged)"
            },
            {
              "charge": "query.item_remaining_use_duration > 0.0"
            }
          ]
        }
      }
    },
    "controller.animation.player.first_person_attack": {
      "initial_state": "default",
      "states": {
        "default": {
          "animations": [
            "first_person_attack_rotation"
          ],
          "transitions": [
            {
              "vr_attack": "variable.is_using_vr"
            }
          ]
        },
        "vr_attack": {
          "animations": [
            "first_person_vr_attack_rotation"
          ],
          "transitions": [
            {
              "default": "!variable.is_using_vr"
            }
          ]
        }
      }
    },
    "controller.animation.player.first_person_map": {
      "initial_state": "default",
      "states": {
        "default": {
          "transitions": [
            {
              "one_hand": "query.get_equipped_item_name('off_hand') == 'map' || query.get_equipped_item_name('off_hand') == 'shield'"
            },
            {
              "two_hand": "query.get_equipped_item_name('off_hand') != 'map' && query.get_equipped_item_name('off_hand') != 'shield'"
            }
          ]
        },
        "one_hand": {
          "animations": [
            {
              "first_person_map_hold_main_hand": "query.get_equipped_item_name(0, 1) == 'map'"
            },
            {
              "first_person_map_hold_off_hand": "query.get_equipped_item_name('off_hand') == 'map' && (query.get_equipped_item_name == 'bow' ? !(variable.item_use_normalized > 0 && variable.item_use_normalized < 1.0) : 1.0)"
            }
          ],
          "transitions": [
            {
              "default": "query.get_equipped_item_name(0, 1) != 'map' && query.get_equipped_item_name('off_hand') != 'map'"
            },
            {
              "two_hand": "query.get_equipped_item_name('off_hand') != 'map' && query.get_equipped_item_name('off_hand') != 'shield'"
            }
          ]
        },
        "two_hand": {
          "animations": [
            "first_person_map_hold",
            "first_person_map_hold_attack"
          ],
          "transitions": [
            {
              "default": "query.get_equipped_item_name(0, 1) != 'map' && query.get_equipped_item_name('off_hand') != 'map'"
            },
            {
              "one_hand": "query.get_equipped_item_name('off_hand') == 'map' || query.get_equipped_item_name('off_hand') == 'shield'"
            }
          ]
        }
      }
    },
    "controller.animation.player.root": {
      "initial_state": "first_person",
      "states": {
        "first_person": {
          "animations": [
            "first_person_swap_item",
            {
              "first_person_attack_controller": "variable.attack_time > 0.0f && query.get_equipped_item_name != 'map'"
            },
            "first_person_base_pose",
            {
              "first_person_empty_hand": "query.get_equipped_item_name(0, 1) != 'map'"
            },
            {
              "first_person_walk": "variable.bob_animation"
            },
            {
              "first_person_map_controller": "(query.get_equipped_item_name(0, 1) == 'map' || query.get_equipped_item_name('off_hand') == 'map')"
            },
            {
              "first_person_crossbow_equipped": "query.get_equipped_item_name == 'crossbow' && (variable.item_use_normalized > 0 && variable.item_use_normalized < 1.0)"
            },
            {
              "first_person_breathing_bob": "variable.attack_time <= 0.0"
            }
          ],
          "transitions": [
            {
              "paperdoll": "variable.is_paperdoll"
            },
            {
              "map_player": "variable.map_face_icon"
            },
            {
              "third_person": "!variable.is_first_person"
            }
          ]
        },
        "map_player": {
          "transitions": [
            {
              "paperdoll": "variable.is_paperdoll"
            },
            {
              "first_person": "variable.is_first_person"
            },
            {
              "third_person": "!variable.map_face_icon && !variable.is_first_person"
            }
          ]
        },
        "paperdoll": {
          "animations": [
            "humanoid_base_pose",
            "look_at_target_ui",
            "move.arms",
            "move.legs",
            "cape"
          ],
          "transitions": [
            {
              "first_person": "!variable.is_paperdoll && variable.is_first_person"
            },
            {
              "map_player": "variable.map_face_icon"
            },
            {
              "third_person": "!variable.is_paperdoll && !variable.is_first_person"
            }
          ]
        },
        "third_person": {
          "animations": [
            "humanoid_base_pose",
            {
              "look_at_target": "!query.is_sleeping && !query.is_emoting && !query.is_ignited"
            },
            "move.arms",
            "move.legs",
            "cape",
            {
              "riding.arms": "query.is_riding && !query.is_sheared"
            },
            {
              "riding.legs": "query.is_riding && !query.is_sheared"
            },
            {
              "dolphin": "query.is_riding && query.is_sheared"
            },
            "holding",
            {
              "brandish_spear": "variable.is_brandishing_spear"
            },
            {
              "holding_spyglass": "variable.is_holding_spyglass"
            },
            {
              "charging": "query.is_charging"
            },
            {
              "sneaking": "query.is_sneaking && !query.is_sleeping && !query.is_jumping"
            },
            {
              "bob": "!variable.is_holding_spyglass"
            },
            {
              "damage_nearby_mobs": "variable.damage_nearby_mobs"
            },
            {
              "swimming": "variable.swim_amount > 0.0"
            },
            {
              "swimming.legs": "variable.swim_amount > 0.0"
            },
            {
              "use_item_progress": "( variable.use_item_interval_progress > 0.0 ) || ( variable.use_item_startup_progress > 0.0 ) && !variable.is_brandishing_spear && !variable.is_holding_spyglass"
            },
            {
              "sleeping": "query.is_sleeping && query.is_alive"
            },
            {
              "attack.positions": "variable.attack_time >= 0.0"
            },
            {
              "attack.rotations": "variable.attack_time >= 0.0"
            },
            {
              "shield_block_main_hand": "query.blocking && query.get_equipped_item_name('off_hand') != 'shield' && query.get_equipped_item_name == 'shield'"
            },
            {
              "shield_block_off_hand": "query.blocking && query.get_equipped_item_name('off_hand') == 'shield'"
            },
            {
              "crossbow_controller": "query.get_equipped_item_name == 'crossbow'"
            },
            {
              "third_person_bow_equipped": "query.get_equipped_item_name == 'bow' && (variable.item_use_normalized > 0 && variable.item_use_normalized < 1.0)"
            }
          ],
          "transitions": [
            {
              "paperdoll": "variable.is_paperdoll"
            },
            {
              "first_person": "variable.is_first_person"
            },
            {
              "map_player": "variable.map_face_icon"
            }
          ]
        }
      }
    }
  }
}
