static public TC_ItemBehaviour AddItem(TC_ItemBehaviour item, bool clone, bool addNodeGroup = false) { TC_ItemBehaviour itemToDrop = null; if (!clone) { if (item.GetType() == typeof(TC_Node)) { if (addNodeGroup) { itemToDrop = (TC_ItemBehaviour)item.Add <TC_NodeGroup>("Node Group", true); } else { itemToDrop = (TC_ItemBehaviour)item.Add <TC_Node>("", true); } } else if (item.GetType() == typeof(TC_SelectItem)) { itemToDrop = (TC_ItemBehaviour)item.Add <TC_SelectItem>("", true); TC_SelectItem newSelectItem = (TC_SelectItem)itemToDrop; TC_SelectItem selectItem = (TC_SelectItem)item; if (selectItem.dropPosition == DropPosition.Right) { newSelectItem.selectIndex = Mathf.Min(selectItem.selectIndex + 1, Mathf.Max(0, newSelectItem.GetItemTotalFromTerrain() - 1)); } else { newSelectItem.selectIndex = Mathf.Max(selectItem.selectIndex - 1, 0); } } Undo.RegisterCreatedObjectUndo(item.gameObject, "Created " + item.name); } else { itemToDrop = item; } itemToDrop = TD.DropItemSameLevel(item, itemToDrop, clone, false); Selection.activeTransform = itemToDrop.t; return(itemToDrop); }
static public void LeftClickMenu(Rect rect, TC_ItemBehaviour item) { if (TD.ClickRect(rect) != 1) { return; } string itemText = ""; if (item.GetType() == typeof(TC_SelectItem)) { itemText = "Item"; } else { itemText = "Node"; } GenericMenu menu = new GenericMenu(); string instanceID = item.GetInstanceID().ToString(); if (Event.current.mousePosition.x < rect.x + ((TD.texCardHeader.width / 2) * TD.scale)) { menu.AddItem(new GUIContent("<-- Add " + itemText), false, LeftClickMenu, instanceID + ":Add Left"); //if (itemText == "Node") //{ // menu.AddItem(new GUIContent("<-- Add Node Group"), false, LeftClickMenu, instanceID + ":Add NodeGroup Left"); // menu.AddSeparator(""); //} menu.AddItem(new GUIContent("<-- Duplicate " + itemText), false, LeftClickMenu, instanceID + ":Duplicate Left"); } else { menu.AddItem(new GUIContent("--> Add " + itemText), false, LeftClickMenu, instanceID + ":Add Right"); //if (itemText == "Node") //{ // menu.AddItem(new GUIContent("--> Add Node Group"), false, LeftClickMenu, instanceID + ":Add NodeGroup Right"); // menu.AddSeparator(""); //} menu.AddItem(new GUIContent("--> Duplicate " + itemText), false, LeftClickMenu, instanceID + ":Duplicate Right"); } // bool eraseNodeMenu = true; //if (node.nodeType == NodeType.Select) //{ // TC_NodeGroup nodeGroup = node.t.parent.GetComponent<TC_NodeGroup>(); // if (nodeGroup != null) // { // if (nodeGroup.itemList.Count == 1) eraseNodeMenu = false; // } //} //if (eraseNodeMenu) { // menu.AddSeparator(""); // menu.AddItem(new GUIContent("Erase Node"), false, LeftClickMenu, instanceID + ":Erase Node"); //} menu.ShowAsContext(); }