{
  "format_version": "1.10.0",
  "animation_controllers": {

        // Gives varying levels of speeds to ridden flying flyers
        // however, so as not to maintain the speed 10 when they land
        // which makes them ZOOM for a bit on landing,
        // constantly overwrite speed boosts when on the ground
        // this has the side effect of preventing any flyer that uses this AC
        // from being affected by speed boosts while on the ground (ie splash potion)

        "controller.animation.cyn_hao.flyer.air.speed_wild": {
            "initial_state": "speed_normal",
            "states": {
                "speed_normal": {
                    "on_entry": [
                        // clear any flight effects
                        "/effect @s speed 0 1 false",
                        "/effect @s slowness 0 1 false"
                    ],
                    "transitions": [
                        {
                            "speed_flight": "!query.is_on_ground && !query.is_in_water && !query.is_in_lava"
                        }
                    ]
                },

                "speed_flight": {
                    "animations": [
                        "flyer_speed_wild"
                    ],
                    "transitions": [
                        {
                            "speed_normal": "query.is_on_ground || query.is_in_water || query.is_in_lava"
                        }
                    ]
                }
            }
        },

        "controller.animation.cyn_hao.flyer.air.speed_tame": {
            "initial_state": "speed_normal",
            "states": {
                "speed_normal": {
                    "on_entry": [
                        // clear any flight effects
                        "/effect @s speed 0 1 false",
                        "/effect @s slowness 0 1 false"
                    ],
                    "transitions": [
                        {
                            "speed_flight": "!query.is_on_ground && !query.is_in_water && !query.is_in_lava"
                        }
                    ]
                },

                "speed_flight": {
                    "animations": [
                        "flyer_speed_tame"
                    ],
                    "transitions": [
                        {
                            "speed_normal": "query.is_on_ground || query.is_in_water || query.is_in_lava"
                        }
                    ]
                }
            }
        },


        "controller.animation.cyn_hao.flyer.water.speed_wild": {
            "initial_state": "speed_normal",
            "states": {
                "speed_normal": {
                    "on_entry": [
                        // clear any flight effects
                        "/effect @s speed 0 1 false",
                        "/effect @s slowness 0 1 false"
                    ],
                    "transitions": [
                        {
                            "speed_flight": "query.is_in_water"
                        }
                    ]
                },

                "speed_flight": {
                    "animations": [
                        "flyer_speed_wild"
                    ],
                    "transitions": [
                        {
                            "speed_normal": "!query.is_in_water"
                        }
                    ]
                }
            }
        },

        "controller.animation.cyn_hao.flyer.water.speed_tame": {
            "initial_state": "speed_normal",
            "states": {
                "speed_normal": {
                    "on_entry": [
                        // clear any flight effects
                        "/effect @s speed 0 1 false",
                        "/effect @s slowness 0 1 false"
                    ],
                    "transitions": [
                        {
                            "speed_flight": "query.is_in_water"
                        }
                    ]
                },

                "speed_flight": {
                    "animations": [
                        "flyer_speed_tame"
                    ],
                    "transitions": [
                        {
                            "speed_normal": "!query.is_in_water"
                        }
                    ]
                }
            }
        }
    }
}
