public void Deserialize(BinaryReader reader) { Id = reader.ReadInt32(); GroupId = reader.ReadInt32(); Category = (NodeCategory)reader.ReadInt32(); Type = reader.ReadString(); Name = reader.ReadString(); var hasValue = reader.ReadBoolean(); if (hasValue) { Value = reader.ReadString(); } var pinsCount = reader.ReadInt32(); for (var i = 0; i < pinsCount; i++) { var pin = new Pin(); pin.Deserialize(reader); EnterPins.Add(pin); } pinsCount = reader.ReadInt32(); for (var i = 0; i < pinsCount; i++) { var pin = new PinWithConnection(); pin.Deserialize(reader); InputPins.Add(pin); } pinsCount = reader.ReadInt32(); for (var i = 0; i < pinsCount; i++) { var pin = new PinWithConnection(); pin.Deserialize(reader); ExitPins.Add(pin); } pinsCount = reader.ReadInt32(); for (var i = 0; i < pinsCount; i++) { var pin = new Pin(); pin.Deserialize(reader); OutputPins.Add(pin); } }
public NodeViewModel(ScriptViewModel script, ScriptNode node) { Script = script; Node = node; _name = node.Name; _value = node.Value; foreach (var pin in node.InputPins) { InputPins.Add(new InputPinViewModel(this, pin)); } foreach (var pin in node.OutputPins) { OutputPins.Add(new OutputPinViewModel(this, pin)); } foreach (var pin in node.EnterPins) { EnterPins.Add(new EnterPinViewModel(this, pin)); } foreach (var pin in node.ExitPins) { ExitPins.Add(new ExitPinViewModel(this, pin)); } MenuItems.Add(new MenuItemViewModel { Header = "Copy", Command = CopyThis }); MenuItems.Add(new MenuItemViewModel { Header = "Duplicate", Command = DuplicateThis }); MenuItems.Add(new MenuItemViewModel { Header = "Cut", Command = CutThis }); MenuItems.Add(new MenuItemViewModel { Header = "Delete", Command = DeleteThis }); //MenuItems.Add(new MenuItemViewModel { Header = "-" }); MenuItems.Add(new MenuItemViewModel { Header = "Group", Command = GroupThis }); MenuItems.Add(new MenuItemViewModel { Header = "Ungroup", Command = UngroupThis }); }