public void UpdateRightClickMenuWithNode(UISpellNode uisn)
 {
     if (uisn != null)
     {
         rcm.ActivateIndex((int)ModifyableUITypes.Node);
     }
     selectedUISN = uisn;
 }
    public void CreateUISpellNode(SpellNode sn)
    {
        GameObject obj = (GameObject)Instantiate(uiSpellNodePrefab, UiBoard);

        obj.transform.position = rcm.GetRightClickedPoint();
        obj.name = "UI" + sn.GetMcType().ToString() + "SpellNode";
        UISpellNode usn = (UISpellNode)obj.GetComponent <UISpellNode>();

        if (usn != null)
        {
            usn.linkedSpellNode = sn;
            usn.SetUIMenu(this);
            uiSpellNodeList.Add(usn);
            selectedUISN = usn;
        }
    }
 public void UpdateSelectedUISpellNode(UISpellNode uisn)
 {
     if (selectionMode == SelectionMode.None)
     {
         // drag = true;
         selectionMode = SelectionMode.Drag;
         dragableObj   = uisn.gameObject;
         offset        = (Vector2)(uisn.transform.position - Input.mousePosition);
         selectedSpace = SelectionSpace.UI;
         UpdateSelectedSpellNode(uisn.linkedSpellNode);
         mostRecentlySelected = ModifyableUITypes.Node;
     }
     else if (selectionMode == SelectionMode.DataLink || selectionMode == SelectionMode.TransitionLink)
     {
         Debug.Log("Creating Link with source " + selectedUISN.gameObject.name + " and destination " + uisn.gameObject.name);
         CreateLink(selectedUISN, uisn);
         mostRecentlySelected = ModifyableUITypes.Link;
     }
 }
    public void CreateLink(UISpellNode source, UISpellNode destination)
    {
        MagicCircleLinks mcl;

        if (selectionMode == SelectionMode.DataLink)
        {
            mcl = currentSpell.AddLink(LinkTypes.Data);
        }
        else if (selectionMode == SelectionMode.TransitionLink)
        {
            if (source.linkedSpellNode.IsMagicCircle() && destination.linkedSpellNode.IsMagicCircle())
            {
                mcl = currentSpell.AddLink(LinkTypes.Transition);
            }
            else
            {
                Debug.LogWarning("Can't a transition link with a non magic circle ");
                return;
            }
        }
        else
        {
            Debug.LogWarning("Can't Create this link type " + selectionMode);
            return;
        }
        mcl.SetSource(source.linkedSpellNode);
        mcl.SetDestination(destination.linkedSpellNode);
        selectionMode           = SelectionMode.None;
        selectedLink.linkedLink = mcl;
        selectedLink.mcmm       = this;
        Vector3 offsetMe = Input.mousePosition - destination.transform.position;

        print(offsetMe.ToString("F3"));
        selectedLink.SetReference(selectedLink.points.Count - 1, destination, offsetMe);
        selectedLink.deleteOnNoSource = true;
        UpdateSelectedLink(selectedLink);
    }