public void AddItemToBuild(string id) { var new_item = Instantiate(ItemPrefab, PipelineAnchor); new_item.localScale = Vector3.one; BuildPipelineCell item_contoller = new_item.GetComponent <BuildPipelineCell>(); item_contoller.Setup(id, () => { AddSlot(); }); /*if(pipeline.Count == Slots) * item_contoller.UpdateState(BuildPipelineCell.States.FirstInQueue); * if(pipeline.Count<Slots) * item_contoller.UpdateState(BuildPipelineCell.States.Slot);*/ pipeline.Add(item_contoller); UpdateStates(); }
public void UpdateProgress(float dt) { finish_list.Clear(); for (int i = 0; i < Slots && i < pipeline.Count; i++) { if (pipeline[i].UpdateProgress(dt * ProgressSpeed, ProgressSpeed) >= 1f) { finish_list.Add(pipeline[i]); } } while (finish_list.Count > 0) { BuildPipelineCell finished_cell = finish_list[0]; welcome.AddBuild(finished_cell.ID, 1); Inventory.Add(finished_cell.ID, 1); pipeline.Remove(finished_cell); finish_list.RemoveAt(0); Destroy(finished_cell.gameObject); UpdateStates(); InvView.UpdateView(); BuildArea.UpdateView(); } }