public void Compile(BlueSwitchProject project) { Errors.Clear(); OnCompileStart(); RenderingEngine.EventManager.Items.Clear(); Items.Clear(); var starts = project.FindPotentialStarts(); foreach (var connection in starts) { var tree = new ProcessingTree <SwitchBase> { Root = new ProcessingNode <SwitchBase>(connection.ToInputOutput.Origin, connection) }; tree.UpdateConnections(project.ConnectionsForCompilation); tree.Root.Value.OnRegisterEvents(tree, RenderingEngine); var current = tree.Root; ResolveTree(tree, current, current); tree.Started -= ProcessingTreeOnStarted; tree.Started += ProcessingTreeOnStarted; tree.Finished -= ProcessingTreeOnFinished; tree.Finished += ProcessingTreeOnFinished; Items.Add(tree); } OnCompileFinished(); }
public void Stop(BlueSwitchProject project) { foreach (var processingTree in Items) { processingTree.Stop(); } }
public void NewProject() { OnBeforeLoading(); CurrentProject = new BlueSwitchProject(); LoadPrefabs(); CurrentProject.Initialize(this); OnProjectLoaded(); }
public void LoadProject(String filePath) { OnBeforeLoading(); CurrentProject = new BlueSwitchProject(); try { CurrentProject = JsonSerializable.Load <BlueSwitchProject>(filePath); } catch (Exception ex) { _log.Error(ex); } LoadPrefabs(); CurrentProject.Initialize(this); OnProjectLoaded(); }
public void UpdateConnection(BlueSwitchProject project) { var switchTo = project.ItemLookup[ToInputOutput.OriginId]; var switchFrom = project.ItemLookup[FromInputOutput.OriginId]; if (ToInputOutput.IsInput) { ToInputOutput.Origin = switchTo; ToInputOutput.InputOutput = switchTo.Inputs.FirstOrDefault(x => x.Index == ToInputOutput.InputOutputId); FromInputOutput.Origin = switchFrom; FromInputOutput.InputOutput = switchFrom.Outputs.FirstOrDefault(x => x.Index == FromInputOutput.InputOutputId); } else { ToInputOutput.Origin = switchTo; ToInputOutput.InputOutput = switchTo.Outputs.FirstOrDefault(x => x.Index == ToInputOutput.InputOutputId); FromInputOutput.Origin = switchFrom; FromInputOutput.InputOutput = switchFrom.Inputs.FirstOrDefault(x => x.Index == FromInputOutput.InputOutputId); } }