// 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; } }
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); }
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); } }
public void AddToQueue(FactoryDrop drop) { queue.Enqueue(drop); }
public void RemoveDrop(FactoryDrop drop) { drops.Remove(drop); drop.gameObject.SetActive(false); used.Add(drop); }