private void Select() { isSelected = true; sphereMaterial.color = COLOR_SELECTED; Designer_CellEditor.AddSelectedNode(this); //GetComponent<Rigidbody>().drag = float.MaxValue; }
private void Deselect(bool _hover) { isSelected = false; if (_hover) { sphereMaterial.color = COLOR_HOVER; } else { sphereMaterial.color = COLOR_BASE; } Designer_CellEditor.RemoveSelectedNode(this); //GetComponent<Rigidbody>().drag = 1f; }
private void CheckInput() { if (!Designer_CellEditor.GetEditorInputEnabled()) { return; } CheckClick(); if (Input.GetKeyDown(KeyCode.Delete) && isSelected && eType != ENodeType.EBase) { parentNode.RemoveChild(ePositionToParent); } if ((Input.GetKeyDown(KeyCode.A) && (Input.GetKey(KeyCode.RightControl) || Input.GetKey(KeyCode.LeftControl))) || (Input.GetKey(KeyCode.A) && (Input.GetKeyDown(KeyCode.RightControl) || Input.GetKeyDown(KeyCode.LeftControl)))) { Select(); } Scale(); }
private List <Node_CellEditor> GetSymmetryNodes(ESymmetry _eSymmetry) { List <Node_CellEditor> ret = new List <Node_CellEditor>(); Stack <ENodePosition> positions = new Stack <ENodePosition>(); positions.Push(ePositionToParent); Node_CellEditor center = parentNode; int children = center.GetChildCount(); //find the center of symmetry if (Designer_CellEditor.HasSymmetryNode()) { while (center.eType != ENodeType.EBase && !center.symmetryNode) { positions.Push(center.ePositionToParent); center = center.parentNode; children = center.GetChildCount(); } //if the base is reached withou finding the symmetry node, stop if (!center.symmetryNode) { return(ret); } } else { while (center.eType != ENodeType.EBase) { positions.Push(center.ePositionToParent); center = center.parentNode; children = center.GetChildCount(); } } //if the symmetry node has only one child, stop if (children == 1) { return(ret); } //now we have the center of symmetry //iterater over all the steps it took to get here, but backwards if (_eSymmetry == ESymmetry.EMirror || _eSymmetry == ESymmetry.EPointMirror) { ENodePosition curPos; curPos = positions.Pop(); while (positions.Count != 0 && center != null) { curPos = UTIL_CellEditor.GetOppositePosition(curPos); center = center.GetChild(curPos); } if (center != null) { ret.Add(center); } } else if (_eSymmetry == ESymmetry.EPoint) { //F**K! } return(ret); }