Example #1
0
    public bool CopyFrom(StateGraph graph, IEnumerable <StateNodeRef> copyNodes, Vector2 offset)
    {
        List <StateNodeRef> nodes = copyNodes.Where(it => graph.CheckCopy(it)).ToList();

        foreach (var node in nodes)
        {
            NodeData data = new NodeData
            {
                Id       = node.Id,
                Bounds   = node.Node.Bounds,
                Data     = TypeSerializerHelper.Serialize(node.Node.Data),
                Name     = node.Node.Name,
                Comments = node.Node.Comments,
            };
            data.Bounds.position += offset;
            Datas.Add(data);
        }
        foreach (var link in graph.Links)
        {
            if (nodes.Contains(link.From) && nodes.Contains(link.To))
            {
                NodeLink nodeLink = new NodeLink
                {
                    FromIdx = Datas.FindIndex(it => it.Id == link.From.Id),
                    ToIdx   = Datas.FindIndex(it => it.Id == link.To.Id),
                    IsChild = link.IsChild
                };
                Links.Add(nodeLink);
            }
        }
        return(nodes.Count > 0);
    }
Example #2
0
 public void OnBeforeSerialize()
 {
     if (nodeData != null)
     {
         serializeData = TypeSerializerHelper.Serialize(nodeData);
     }
 }