public void UpdateWithCreatedLink(MagicCircleLinks mcl)
    {
        GameObject   obj    = (GameObject)Instantiate(uiLinkPrefab, UiBoard);
        UILineRender uiLine = obj.GetComponent <UILineRender>();

        uiLine.linkedLink = mcl;
        uiLine.mcmm       = this;
        uiLine.points.Clear();
        Vector3 offset = (mcl.GetLinkType() == LinkTypes.Transition ? Vector3.up * 5f : Vector3.zero);

        for (int i = 0; i < uiSpellNodeList.Count; i++)
        {
            if (uiSpellNodeList[i].linkedSpellNode == mcl.source)
            {
                uiLine.AddReference(uiSpellNodeList[i], offset);
                break;
            }
        }
        for (int i = 0; i < uiSpellNodeList.Count; i++)
        {
            if (uiSpellNodeList[i].linkedSpellNode == mcl.destination)
            {
                uiLine.AddReference(uiSpellNodeList[i], offset);
                break;
            }
        }
        // uiLine.AddReference( selectedUISN );
        uiLinkList.Add(uiLine);
        uiLine.deleteOnNoSource = true;
    }
 public void UpdateRightClickMenuWithLink(UILineRender uiln)
 {
     if (uiln != null)
     {
         rcm.ActivateIndex((int)ModifyableUITypes.Link);
     }
     selectedLink = uiln;
 }
 public void DeselectAll()
 {
     if (selectionMode == SelectionMode.TransitionLink || selectionMode == SelectionMode.DataLink)
     {
         selectedLink.deleteOnNoSource = true;
     }
     selectedSpellNode = null;
     selectedLink      = null;
     selectionMode     = SelectionMode.None;
 }
 public void UpdateSelectedLink(UILineRender uilr)
 {
     if (selectionMode == SelectionMode.None)
     {
         mostRecentlySelected = ModifyableUITypes.Link;
         print("Updating the selected link");
         selectedLink = uilr;
         UpdateDetailsPanel(((int)MagicCircleType.END) + ((int)selectedLink.linkedLink.GetLinkType()));
         UpdateLinkText();
     }
 }
    public void SetLinkMode(int link)
    {
        Debug.Log("Setting link mode to " + link);
        switch ((LinkTypes)link)
        {
        case LinkTypes.Transition:
        {
            selectionMode = SelectionMode.TransitionLink;
            GameObject   obj    = (GameObject)Instantiate(uiLinkPrefab, UiBoard);
            UILineRender uiLine = obj.GetComponent <UILineRender>();
            uiLine.points.Clear();
            uiLine.AddReference(selectedUISN);
            uiLine.AddPoint(Input.mousePosition);
            uiLinkList.Add(uiLine);
            selectedLink = uiLine;
            break;
        }

        case LinkTypes.Data:
        {
            selectionMode = SelectionMode.DataLink;
            GameObject   obj    = (GameObject)Instantiate(uiLinkPrefab, UiBoard);
            UILineRender uiLine = obj.GetComponent <UILineRender>();
            uiLine.points.Clear();
            uiLine.AddReference(selectedUISN);
            uiLine.AddPoint(Input.mousePosition);
            uiLinkList.Add(uiLine);
            selectedLink = uiLine;
            break;
        }

        default:
        {
            Debug.LogWarning(" SetLinkMode link type not implemented ");
            return;
        }
        }
    }