public SubstanceNodeViewModel(Substance sub) { Substance = sub; Name = Substance.Name; switch (Substance) { case Substance <ObservableCollection <PrimitiveBinding <float> > > float_sub: ValueNodeOutputViewModel <ObservableCollection <PrimitiveBinding <float> > > float_output = new ValueNodeOutputViewModel <ObservableCollection <PrimitiveBinding <float> > >(); float_output.Editor = new FloatValueEditorViewModel() { Value = float_sub.Data }; Outputs.Edit(x => x.Add(float_output)); break; case Substance <ObservableCollection <PrimitiveBinding <int> > > int_sub: ValueNodeOutputViewModel <ObservableCollection <PrimitiveBinding <int> > > int_output = new ValueNodeOutputViewModel <ObservableCollection <PrimitiveBinding <int> > >(); int_output.Editor = new IntegerValueEditorViewModel() { Value = int_sub.Data }; Outputs.Edit(x => x.Add(int_output)); break; case Substance <ObservableCollection <BindingVector3> > vec_sub: ValueNodeOutputViewModel <ObservableCollection <BindingVector3> > vec_output = new ValueNodeOutputViewModel <ObservableCollection <BindingVector3> >(); vec_output.Editor = new VectorValueEditorViewModel() { Value = vec_sub.Data }; Outputs.Edit(x => x.Add(vec_output)); break; case Substance <PrimitiveBinding <string> > string_sub: ValueNodeOutputViewModel <PrimitiveBinding <string> > string_output = new ValueNodeOutputViewModel <PrimitiveBinding <string> >(); string_output.Editor = new StringValueEditorViewModel() { Value = string_sub.Data }; Outputs.Edit(x => x.Add(string_output)); break; default: Outputs.Edit(x => x.Add(new NodeOutputViewModel())); break; } }
public BeginNodeViewModel(Staff actor) { Actor = actor; Name = Actor.Name; // Create exec output node NodeOutputViewModel exec_output = new NodeOutputViewModel() { Name = "Begin", Port = new ExecPortViewModel() { PortType = PortType.Execution }, MaxConnections = 1 }; Outputs.Edit(x => x.Add(exec_output)); exec_output.Connections.Connect() .Subscribe(change => { OnExecOutputChanged(change); }); }
public CutNodeViewModel(Cut cut) { Cut = cut; cut.NodeViewModel = this; // Create exec input node NodeInputViewModel exec_input = new NodeInputViewModel() { Port = new ExecPortViewModel() { PortType = PortType.Execution }, MaxConnections = 1 }; Inputs.Edit(x => x.Add(exec_input)); exec_input.Connections.Connect() .Subscribe(change => { OnExecInputChanged(change); }); // Create exec output node NodeOutputViewModel exec_output = new NodeOutputViewModel() { Port = new ExecPortViewModel() { PortType = PortType.Execution }, MaxConnections = 1 }; Outputs.Edit(x => x.Add(exec_output)); exec_output.Connections.Connect() .Subscribe(change => { OnExecOutputChanged(change); }); PropertyChanged += CutNodeViewModel_PropertyChanged; }
public BlockingCutNodeViewModel(Cut cut) { Cut = cut; Name = "Blocking Actions"; BlockingCutEditor = new BlockingCutEditorViewModel(cut); // Create exec input node NodeInputViewModel exec_input = new NodeInputViewModel() { Port = new ExecPortViewModel() { PortType = PortType.Execution }, MaxConnections = 1 }; Inputs.Edit(x => x.Add(exec_input)); exec_input.Connections.Connect() .Subscribe(change => { OnExecInputChanged(change); }); // Create exec output node NodeOutputViewModel exec_output = new NodeOutputViewModel() { Port = new ExecPortViewModel() { PortType = PortType.Execution }, MaxConnections = 1, Editor = BlockingCutEditor }; Outputs.Edit(x => x.Add(exec_output)); exec_output.Connections.Connect() .Subscribe(change => { OnExecOutputChanged(change); }); }