示例#1
0
    // Instantiate cluster of 1 - 4 customers
    public bool GenerateNewCluster()
    {
        // get queue positions
        if (queuePositions == null)        // first time
        {
            maxWaitingClusters = transform.childCount;
            queuePositions     = new Vector3[maxWaitingClusters];
            for (int i = 0; i < maxWaitingClusters; i++)
            {
                queuePositions[i] = transform.GetChild(i).position;
            }
        }

        if (currentWaitingClusters == maxWaitingClusters)
        {
            return(false);
        }

        CustomersCluster cluster = Instantiate(customerCluster, queuePositions[maxWaitingClusters - 1], Quaternion.identity).GetComponent <CustomersCluster>();

        cluster.Create(Random.Range(1, 5), currentWaitingClusters);
        clusters.Add(cluster);
        currentWaitingClusters++;
        return(true);
    }
 // Player select customers
 public void SelectCustomer(CustomersCluster customersCluster)
 {
     selectedCustomers = customersCluster;
     foreach (var table in freeTables)
     {
         table.Enable();
     }
 }
示例#3
0
    // Move all clusters in queue
    public void TakeCluster(CustomersCluster takenCustomer)
    {
        currentWaitingClusters--;
        int index = clusters.IndexOf(takenCustomer);

        for (int i = index + 1; i < clusters.Count; i++)
        {
            clusters[i].MoveClusterInQueue();
        }
        clusters.Remove(takenCustomer);
    }
    public IEnumerator WaitForEating(CustomersCluster customersCluster)
    {
        yield return(new WaitForSeconds(customersEatingTime));

        if (customersCluster is null)
        {
            Debug.LogError("Gave food to table without customers");
        }
        else
        {
            customersCluster.CustomersAteFood();
            Debug.Log("customers out");
        }
    }
    // Player choose table for customers
    public CustomersCluster ChooseTable(Table table)
    {
        // make free tables not selectable
        foreach (Table freeTable in freeTables)
        {
            freeTable.Disable();
        }
        CustomersCluster ret = selectedCustomers;

        selectedCustomers.AssignToTable(table);
        freeTables.Remove(table);
        // Increase number of custer clusters inside building
        acceptedCustomers++;
        TakeClusterFromQueue(selectedCustomers);
        // clear selection
        selectedCustomers = null;
        return(ret);
    }
 public void TakeClusterFromQueue(CustomersCluster customersCluster)
 {
     queue.TakeCluster(customersCluster);
 }