//This JSON was modified by Rainvay_ZCYF (@ZouChenyunfei) and AgentMindStorm (@agentms_). 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" : "query.get_equipped_item_name(0, 1) != 'filled_map'"
            },
            {
              "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"
            },
            {
              "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" : "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_sleeping"
            },
            "bob",
            {
              "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"
            },
            {
              "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.mainhand', 'minecraft:shield')"
            },
            {
              "shield_block_off_hand" : "query.blocking && !q.is_item_name_any('slot.weapon.mainhand', 'minecraft:shield') && 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)"
            }
          ],
          "transitions" : [
            {
              "paperdoll" : "variable.is_paperdoll"
            },
            {
              "first_person" : "variable.is_first_person"
            },
            {
              "map_player" : "variable.map_face_icon"
            }
          ]
        }
      }
    }
  }
}
