Exemple #1
0
    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();
    }
Exemple #2
0
 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();
     }
 }