{
    "format_version": "1.20.41",
    "animation_controllers": {
        "controller.animation.octovon_spcrs.car.drift": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "is_drifting": "math.abs(query.yaw_speed) >= q.property('oct_spcrs:drift_factor') && q.modified_move_speed >= 1 && q.is_on_ground"
                        }
                    ]
                },
                "is_drifting": {
                    "animations": [
                        "animation.car.sound.tires_squal"
                    ],
                    "transitions": [
                        {
                            "default": "math.abs(query.yaw_speed) < 150 || q.modified_move_speed < 1 || !q.is_on_ground"
                        }
                    ]
                }
            }
        },
        "controller.animation.octovon_spcrs.car.punch_control": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "is_punched": "q.has_property('oct_spcrs:is_punched') && q.property('oct_spcrs:is_punched')"
                        },
                        {
                            "drop_egg": "q.has_property('oct_spcrs:drop_egg') && q.property('oct_spcrs:drop_egg')"
                        }
                    ]
                },
                "is_punched": {
                    "on_entry": [
                        "@s oct_spcrs:is_punched.reset"
                    ],
                    "transitions": [
                        {
                            "default": "!q.property('oct_spcrs:is_punched')"
                        },
                        {
                            "drop_egg": "q.has_property('oct_spcrs:drop_egg') && q.property('oct_spcrs:drop_egg')"
                        }
                    ]
                },
                "drop_egg": {
                    "on_entry": [
                        "/scriptevent oct_spcrs:drop_egg car_egg"
                    ]
                }
            }
        },
        "controller.animation.octovon_spcrs.car.crash": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "crashed": "q.has_property('oct_spcrs:crashed') && q.property('oct_spcrs:crashed')"
                        }
                    ]
                },
                "crashed": {
                    "on_entry": [
                        "/playsound oct_spcrs.car.car_crash @a ~~~",
                        "@s oct_spcrs:crash.reset"
                    ],
                    "transitions": [
                        {
                            "default": "!q.property('oct_spcrs:crashed')"
                        }
                    ]
                }
            }
        },
        "controller.animation.octovon_spcrs.car.honk": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "crashed": "q.has_property('oct_spcrs:honking') && q.property('oct_spcrs:honking')"
                        }
                    ]
                },
                "crashed": {
                    "on_entry": [
                        "/playsound oct_spcrs.car.car_horn @a ~~~",
                        "@s oct_spcrs:honk.reset"
                    ],
                    "transitions": [
                        {
                            "default": "!q.property('oct_spcrs:honking')"
                        }
                    ]
                }
            }
        },
        "controller.animation.octovon_spcrs.car.camera_control": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "no_rider": "!q.has_rider"
                        },
                        {
                            "has_rider_init": "q.has_rider"
                        }
                    ]
                },
                "has_rider_init": {
                    "on_entry": [
                        "/tag @p add oct_spcrs_driver"
                    ],
                    "transitions": [
                        {
                            "has_rider": "(1.0)"
                        }
                    ]
                },
                "has_rider": {
                    "on_entry": [
                        "/camera @p[tag=oct_spcrs_driver] set minecraft:free ease 0.5 out_sine pos ^^3.5^-5 rot ~10 ~0"
                    ],
                    "transitions": [
                        {
                            "has_rider_update": "q.has_rider"
                        },
                        {
                            "reset": "!q.has_rider"
                        }
                    ]
                },
                "has_rider_update": {
                    "on_entry": [
                        "/camera @p[tag=oct_spcrs_driver] set minecraft:free ease 0.5 out_sine pos ^^3.5^-5 rot ~10 ~0"
                    ],
                    "transitions": [
                        {
                            "has_rider": "q.has_rider"
                        },
                        {
                            "reset": "!q.has_rider"
                        }
                    ]
                },
                "reset": {
                    "on_entry": [
                        "/camera @p[tag=oct_spcrs_driver] clear",
                        "/tag @p[tag=oct_spcrs_driver] remove oct_spcrs_driver"
                    ],
                    "transitions": [
                        {
                            "no_rider": "(1.0)"
                        }
                    ]
                },
                "no_rider": {
                    "transitions": [
                        {
                            "has_rider_init": "q.has_rider"
                        }
                    ]
                }
            }
        },
        "controller.animation.octovon_spcrs.car.engine_sound": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "no_rider": "!q.has_rider"
                        },
                        {
                            "engine_idle": "q.has_rider && q.modified_move_speed < 0.5"
                        },
                        {
                            "engine_drive_slow": "q.has_rider && q.modified_move_speed >= 0.5"
                        }
                    ]
                },
                "engine_idle": {
                    "animations": [
                        "animation.car.sound.engine_idle"
                    ],
                    "transitions": [
                        {
                            "engine_stop": "!q.has_rider && q.all_animations_finished"
                        },
                        {
                            "engine_drive_slow": "q.has_rider && q.modified_move_speed >= 0.5 && q.all_animations_finished"
                        }
                    ]
                },
                "engine_drive_slow": {
                    "animations": [
                        "animation.car.sound.engine_drive_slow"
                    ],
                    "transitions": [
                        {
                            "engine_stop": "!q.has_rider && q.all_animations_finished"
                        },
                        {
                            "engine_idle": "q.has_rider && q.modified_move_speed < 0.5 && q.all_animations_finished"
                        },
                        {
                            "engine_drive_fast": "q.has_rider && q.modified_move_speed >= 1.0 && q.all_animations_finished"
                        }
                    ]
                },
                "engine_drive_fast": {
                    "animations": [
                        "animation.car.sound.engine_drive_fast"
                    ],
                    "transitions": [
                        {
                            "engine_stop": "!q.has_rider && q.all_animations_finished"
                        },
                        {
                            "engine_idle": "q.has_rider && q.modified_move_speed < 0.5 && q.all_animations_finished"
                        },
                        {
                            "engine_drive_slow": "q.has_rider && q.modified_move_speed < 1.0 && q.all_animations_finished"
                        }
                    ]
                },
                "engine_start": {
                    "on_entry": [
                        "/playsound oct_spcrs.car.engine_start @a ~~~"
                    ],
                    "transitions": [
                        {
                            "engine_idle": "q.modified_move_speed < 0.5"
                        },
                        {
                            "engine_drive_slow": "q.modified_move_speed >= 0.5"
                        }
                    ]
                },
                "engine_stop": {
                    "on_entry": [
                        "/playsound oct_spcrs.car.engine_stop @a ~~~",
                        "/playsound oct_spcrs.car.door_close @a ~~~"
                    ],
                    "transitions": [
                        {
                            "no_rider": "(1.0)"
                        }
                    ]
                },
                "no_rider": {
                    "transitions": [
                        {
                            "engine_start": "q.has_rider"
                        }
                    ]
                }
            }
        },
        "controller.animation.octovon_spcrs.car.electric_engine_sound": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "no_rider": "!q.has_rider"
                        },
                        {
                            "engine_idle": "q.has_rider && q.modified_move_speed < 0.5"
                        },
                        {
                            "engine_drive_slow": "q.has_rider && q.modified_move_speed >= 0.5"
                        }
                    ]
                },
                "engine_idle": {
                    "transitions": [
                        {
                            "engine_stop": "!q.has_rider && q.all_animations_finished"
                        },
                        {
                            "engine_drive_slow": "q.has_rider && q.modified_move_speed >= 0.5 && q.all_animations_finished"
                        }
                    ]
                },
                "engine_drive_slow": {
                    "animations": [
                        "animation.car.sound.engine_drive_slow"
                    ],
                    "transitions": [
                        {
                            "engine_stop": "!q.has_rider && q.all_animations_finished"
                        },
                        {
                            "engine_idle": "q.has_rider && q.modified_move_speed < 0.5 && q.all_animations_finished"
                        },
                        {
                            "engine_drive_fast": "q.has_rider && q.modified_move_speed >= 1.0 && q.all_animations_finished"
                        }
                    ]
                },
                "engine_drive_fast": {
                    "animations": [
                        "animation.car.sound.engine_drive_fast"
                    ],
                    "transitions": [
                        {
                            "engine_stop": "!q.has_rider && q.all_animations_finished"
                        },
                        {
                            "engine_idle": "q.has_rider && q.modified_move_speed < 0.5 && q.all_animations_finished"
                        },
                        {
                            "engine_drive_slow": "q.has_rider && q.modified_move_speed < 1.0 && q.all_animations_finished"
                        }
                    ]
                },
                "engine_start": {
                    "on_entry": [
                        "/playsound oct_spcrs.car.electric_engine_start @a ~~~"
                    ],
                    "transitions": [
                        {
                            "engine_idle": "q.modified_move_speed < 0.5"
                        },
                        {
                            "engine_drive_slow": "q.modified_move_speed >= 0.5"
                        }
                    ]
                },
                "engine_stop": {
                    "on_entry": [
                        "/playsound oct_spcrs.car.electric_engine_stop @a ~~~",
                        "/playsound oct_spcrs.car.door_close @a ~~~"
                    ],
                    "transitions": [
                        {
                            "no_rider": "(1.0)"
                        }
                    ]
                },
                "no_rider": {
                    "transitions": [
                        {
                            "engine_start": "q.has_rider"
                        }
                    ]
                }
            }
        },
        "controller.animation.oct_spcrs.car.rider_check": {
            "initial_state": "init",
            "states": {
                "init": {
                    "transitions": [
                        {
                            "has_rider": "q.has_rider"
                        },
                        {
                            "no_rider": "!q.has_rider"
                        }
                    ]
                },
                "has_rider": {
                    "on_entry": [
                        "/scriptevent oct_spcrs:car has_rider"
                    ],
                    "transitions": [
                        {
                            "riders_left": "!q.has_rider"
                        }
                    ]
                },
                "riders_left": {
                    "on_entry": [
                        "/scriptevent oct_spcrs:car riders_left"
                    ],
                    "transitions": [
                        {
                            "no_rider": "(1.0)"
                        }
                    ]
                },
                "no_rider": {
                    "on_entry": [
                        "/scriptevent oct_spcrs:car no_rider"
                    ],
                    "transitions": [
                        {
                            "has_rider": "q.has_rider"
                        }
                    ]
                }
            }
        }
    }
}