Example #1
0
 public Pin ResolveEnterPin(Connection connection)
 {
     if (connection.NodeId != Id)
     {
         throw new InvalidOperationException("Wrong node Uid");
     }
     return(EnterPins.FirstOrDefault(_ => _.Id == connection.PinId));
 }
Example #2
0
        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
     });
 }