Esempio n. 1
0
 // Update is called once per frame
 void Update()
 {
     if (queue.Count != 0 && lastReload + WaitTime < Time.time)
     {
         FactoryDrop dr = queue.Dequeue();
         dr.gameObject.SetActive(true);
         drops.Add(dr);
         dr.Start(transform.position + new Vector3(0, 2f, 0));
         lastReload = Time.time;
     }
 }
    // Update is called once per frame
    void Update()
    {
        if (init && Time.time > lastReload + ReloadTime)
        {
            StorageManager.AddResource(resource_id, ResCount);
            FactoryDrop drop = Parent.GetDrop();

            drop.SetData(resource_id, ResCount, Parent);
            Parent.AddToQueue(drop);

            lastReload = Time.time;
        }
    }
Esempio n. 3
0
    public FactoryDrop GetDrop()
    {
        if (used.Count == 0)
        {
            return(Instantiate(this.drop, transform.position, this.drop.transform.rotation, transform));
        }
        FactoryDrop dr = used[0];

        dr.transform.position = transform.position;
        dr.transform.rotation = drop.transform.rotation;
        used.RemoveAt(0);
        return(dr);
    }
Esempio n. 4
0
    IEnumerator AddResource(int resource_id)
    {
        int[] resource_count = resources[resource_id];
        while (true)
        {
            yield return(new WaitForSeconds(resource_count[1] / 1000.0f));

            StorageManager.AddResource(resource_id, resource_count[0]);

            FactoryDrop drop = GetDrop();
            drop.SetData(resource_id, resource_count[0], this);
            queue.Enqueue(drop);
        }
    }
Esempio n. 5
0
 public void AddToQueue(FactoryDrop drop)
 {
     queue.Enqueue(drop);
 }
Esempio n. 6
0
 public void RemoveDrop(FactoryDrop drop)
 {
     drops.Remove(drop);
     drop.gameObject.SetActive(false);
     used.Add(drop);
 }