public void AddForward(EditorStageView stage) { if (stage != this) { if (this.stage.forwardStages.Contains(stage.stage)) { Debug.Log("Already contains"); return; } this.stage.AddNode(stage.stage); //this.stage.forwardStages.Add(stage.stage); if (this.stage.refStages.Contains(stage.stage)) { this.stage.refStages.Remove(stage.stage); refStages.Remove(stage); } forwardStages.Add(stage); stage.dependenceds.Add(this); UpdateView(); } else { Debug.Log("this"); } }
public bool Remove(EditorStageView stage, bool destroy = false) { if (forwardStages.Contains(stage)) { if (destroy && (stage.stage.forwardStages.Count > 0 || stage.stage.refStages.Count > 0)) { return(false); } forwardStages.Remove(stage); this.stage.RemoveNode(stage.stage); stage.dependenceds.Remove(this); if (destroy) { stage.Destroy(); } } else if (refStages.Remove(stage)) { this.stage.refStages.Remove(stage.stage); } else { throw new System.Exception(this + " not contains " + stage); } UpdateView(); return(true); }
public void CreateStage(Vector3 position, EditorStageView parent) { var stage = ((EditorStageView)Instantiate(view, position, parent.transform.rotation, stageContainer)); stage.SetModel(new Campaign.Stage()); parent.AddForward(stage); stages.Add(stage); }
public void SetRef(EditorStageView stage) { if (stage != this) { if (this.stage.forwardStages.Contains(stage.stage) || this.stage.refStages.Contains(stage.stage) || this.stage.IsRoot(stage.stage)) { return; } this.stage.refStages.Add(stage.stage); refStages.Add(stage); stage.dependenceds.Add(this); UpdateView(); } }
void Load() { var meta = GameResources.Load <CampaignMeta>(@"Campaign\" + campaign.name + ".ecpn"); foreach (var s in stages.ToArray()) { s.Destroy(); } campaign = meta.campaign; var rootStage = campaign.current.GetRoot(); for (int i = 0; i < meta.stages.Count; i++) { var stage = Instantiate(view); stage.transform.SetParent(stageContainer, false); stage.transform.localPosition = meta.positions[i]; stage.SetModel(rootStage.GetNode(meta.stages[i])); stages.Add(stage); } EditorStageView.ResetCouples(stages); }
public void RemoveStage(EditorStageView stage) { stages.Remove(stage); }