//This JSON was modified by Rainvay_ZCYF (@ZouChenyunfei), AgentMindStorm (@agentms_), and LateLag (@LateLagMC). Please do not use this document without permission.
{
  "format_version": "1.10.0",
  "animation_controllers": {
    "controller.animation.player.crossbow": {
      "initial_state": "default",
      "states": {
        "charge": {
          "animations": [ "third_person_crossbow_equipped" ],
          "transitions": [
            {
              "default": "!q.is_item_name_any('slot.weapon.mainhand', 'minecraft: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": "variable.attack_time <= 0"
            }
          ],
          "transitions": [
            {
              "default": "!q.is_item_name_any('slot.weapon.mainhand', 'minecraft: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_map": {
      "initial_state": "default",
      "states": {
        "default": {
          "transitions": [
            {
              "one_hand": "q.is_item_name_any('slot.weapon.offhand', 'minecraft:filled_map', 'minecraft:shield')"
            },
            {
              "two_hand": "!q.is_item_name_any('slot.weapon.offhand', 'minecraft:filled_map', 'minecraft:shield')"
            }
          ]
        },
        "one_hand": {
          "animations": [
            {
              "first_person_map_hold_main_hand": "query.get_equipped_item_name(0, 1) == 'filled_map'"
            },
            {
              "first_person_map_hold_off_hand": "q.is_item_name_any('slot.weapon.offhand', 'minecraft:filled_map') && (q.is_item_name_any('slot.weapon.mainhand', 'minecraft:bow') ? !(variable.item_use_normalized > 0 && variable.item_use_normalized < 1.0) : 1.0)"
            }
          ],
          "transitions": [
            {
              "default": "query.get_equipped_item_name(0, 1) != 'filled_map' && !q.is_item_name_any('slot.weapon.offhand', 'minecraft:filled_map')"
            },
            {
              "two_hand": "!q.is_item_name_any('slot.weapon.offhand', 'minecraft:filled_map', 'minecraft:shield')"
            }
          ]
        },
        "two_hand": {
          "animations": [ "first_person_map_hold", "first_person_map_hold_attack" ],
          "transitions": [
            {
              "default": "query.get_equipped_item_name(0, 1) != 'filled_map' && q.is_item_name_any('slot.weapon.offhand', 'minecraft:filled_map')"
            },
            {
              "one_hand": "q.is_item_name_any('slot.weapon.offhand', 'minecraft:filled_map', 'minecraft: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 && !q.is_item_name_any('slot.weapon.mainhand', 'minecraft:filled_map')"
            },
            "first_person_base_pose",
            "first_person_empty_hand",
            {
              "first_person_walk": "!variable.bob_animation"
            },
            {
              "first_person_map_controller": "(query.get_equipped_item_name(0, 1) == 'filled_map' || q.is_item_name_any('slot.weapon.offhand', 'minecraft:filled_map'))"
            },
            {
              "first_person_crossbow_equipped": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:crossbow') && (variable.item_use_normalized > 0 && variable.item_use_normalized < 1.0)"
            },
            {
              "first_person_crossbow_hold": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:crossbow') && query.item_is_charged && !q.is_item_name_any('slot.weapon.offhand', 'minecraft:shield')"
            }
          ],
          "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": "variable.should_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"
            },
            "move.arms",
            "move.legs",
            "cape",
            {
              "riding.arms": "query.is_riding"
            },
            {
              "riding.legs": "query.is_riding"
            },
            "holding",
            {
              "brandish_spear": "variable.is_brandishing_spear"
            },
            {
              "holding_spyglass": "variable.is_holding_spyglass"
            },
            {
              "tooting_goat_horn": "variable.is_tooting_goat_horn"
            },
            {
              "charging": "query.is_charging"
            },
            {
              "sneaking": "query.is_sneaking && (!query.is_gliding && !query.is_sleeping) || (query.is_gliding && variable.attack_time <= 0.0)"
            },
            "bob",
            {
              "damage_nearby_mobs": "variable.damage_nearby_mobs"
            },
            {
              "swimming": "variable.swim_amount > 0.0 && query.is_in_water"
            },
            {
              "swimming.legs": "variable.swim_amount > 0.0 && query.is_in_water"
            },
            {
              "crawling": "variable.swim_amount > 0.0 && !query.is_in_water"
            },
            {
              "crawling.legs": "variable.swim_amount > 0.0 && !query.is_in_water"
            },
            {
              "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 && !variable.is_tooting_goat_horn && !variable.is_using_brush && !query.is_item_name_any('slot.weapon.mainhand', 'minecraft:bow', 'minecraft:crossbow')"
            },
            {
              "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 && !q.is_item_name_any('slot.weapon.offhand', 'minecraft:shield') && q.is_item_name_any('slot.weapon.mainhand', 'minecraft:shield')"
            },
            {
              "shield_block_off_hand": "query.blocking && q.is_item_name_any('slot.weapon.offhand', 'minecraft:shield') && !(variable.item_use_normalized > 0 && variable.item_use_normalized < 1.0)"
            },
            {
              "crossbow_controller": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:crossbow')"
            },
            {
              "third_person_bow_equipped": "q.is_item_name_any('slot.weapon.mainhand', 'minecraft:bow') && (variable.item_use_normalized > 0 && variable.item_use_normalized < 1.0)"
            },
            "holding_brush",
            {
              "brushing": "variable.is_using_brush"
            }
          ],
          "transitions": [
            {
              "paperdoll": "variable.is_paperdoll"
            },
            {
              "first_person": "variable.is_first_person"
            },
            {
              "map_player": "variable.map_face_icon"
            }
          ]
        }
      }
    }
  }
}