Example #1
0
        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();
        }
Example #2
0
 public void Stop(BlueSwitchProject project)
 {
     foreach (var processingTree in Items)
     {
         processingTree.Stop();
     }
 }
Example #3
0
 public void NewProject()
 {
     OnBeforeLoading();
     CurrentProject = new BlueSwitchProject();
     LoadPrefabs();
     CurrentProject.Initialize(this);
     OnProjectLoaded();
 }
Example #4
0
 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();
 }
Example #5
0
        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);
            }
        }