示例#1
0
 public void DesignComplete(IDesigned design)
 {
     if (design.IsDesigned)
     {
         OnAnyIDesignComplete?.Invoke(design);
     }
 }
 public void MarkAsComplete(IDesigned design)
 {
     if (design.IsDesigned)
     {
         doneImage.gameObject.SetActive(true);
     }
 }
    public void DisplayEngineeringProject(IDesigned design)
    {
        if (this.design != null)
        {
            this.design.OnDesignProgressEvent -= UpdateProjectProgress;
            this.design.OnDesignChangeEvent   -= MarkAsComplete;
        }
        this.design = design;
        Part part = design as Part;

        if (part != null)
        {
            DisplayPart();
        }
        this.design.OnDesignProgressEvent += UpdateProjectProgress;
        this.design.OnDesignChangeEvent   += MarkAsComplete;

        UpdateProjectProgress(this.design);
        if (this.design.IsDesigned != true)
        {
            doneImage.gameObject.SetActive(false);
        }
        else
        {
            doneImage.gameObject.SetActive(true);
        }
    }
示例#4
0
    public void SubmitPartDesign(Part part)
    {
        IDesigned design = part as IDesigned;

        design.OnDesignChangeEvent += DesignComplete;
        partDesigns.Add(part);
        partAndPriority.Add(design, 1);
        OnNewIDesign?.Invoke(design);
        Debug.Log("New Part submitted to engineering. Cost: " + design.DesignCost);
    }
 public void UpdateProjectProgress(IDesigned design)
 {
     progressImage.fillAmount = 1 - (design.DesignProgress / design.DesignCost);
 }
    public void CreateNewIDesignPanel(IDesigned design)
    {
        EngineeringProjectPanel panel = EngineeringProjectPanelPool.GetGameObject().GetComponent <EngineeringProjectPanel>();

        panel.DisplayEngineeringProject(design);
    }