/// <summary>
    /// Moves the plate off the screen and serves the burger
    /// </summary>
    IEnumerator ServeToCustomer_()
    {
        _action = ChefAction.Serving;

        var rightPosition = Chef.PlatePosition() + 12f;

        // move plate right
        while (Chef.Plate.localPosition.x < rightPosition)
        {
            Chef.Plate.Translate(new Vector3(0.25f, 0, 0));
            yield return(new WaitForSeconds(0.01f));
        }

        // give the burger to the customer
        _customerHandler.CustomerServed(_burgerSelections);

        // update UI with next 10 orders
        Chef.DisplayOrders(_customerHandler.GetNextOrders(10));

        // remove unused items
        ClearPlate_();

        yield return(new WaitForSeconds(0.25f));

        // move plate left
        while (Chef.Plate.localPosition.x > Chef.PlatePosition())
        {
            Chef.Plate.Translate(new Vector3(-0.25f, 0, 0));
            yield return(new WaitForSeconds(0.01f));
        }
        Chef.Plate.localPosition = new Vector3(Chef.PlatePosition(), Chef.Plate.localPosition.y, Chef.Plate.localPosition.z);

        // next action
        _action = ChefAction.FacingBoard;
    }
    /// <summary>
    /// Called once on startup
    /// </summary>
    private void Start()
    {
        // get the Chef corresponding to this player
        Chef = LicenseToGrillController.Instance.Chefs[GetPlayerIndex()];
        Chef.gameObject.SetActive(true);

        // set appearance of items which change colour based on player
        Chef.ChoppingBoardColour.color = ColourFetcher.GetColour(GetPlayerIndex());
        Chef.SelectionHandColour.color = ColourFetcher.GetColour(GetPlayerIndex());

        // create order list
        _customerHandler = new CustomerHandler();
        Chef.DisplayOrders(_customerHandler.GetNextOrders(5));

        // assign callbacks for when the selection hand enters a trigger, and when an action is complete
        Chef.AddItemSelectionCallbacks(TriggerEntered_, TriggerExited_);
        Chef.AssignActionCallback(UpdateAction_);

        // store position of the sauce bottles
        _saucesYPosition   = Chef.SauceBottles[0].localPosition.y;
        _saucePlatformSize = Chef.SaucePlatform.transform.localScale;
    }