public void OnRightClic() { if (_selectorManager.requestPartSelectionEvent) { _selectorManager.requestPartSelectionEvent = false; _designer.DesignerUi.ShowMessage("Canceled"); _toolState = null; } }
public void OnAlignRotation(char axis) { if (_toolState != null) { return; } if (_selectorManager.selectedParts.Count > 0) { _designer.DesignerUi.ShowMessage("Select part to align to, on " + axis + " axis, or right click to cancel", 30); _selectorManager.requestPartSelectionEvent = true; _toolState = new PartToolState(PartToolStateTypes.AlignRotation, axis); } else { _designer.DesignerUi.ShowMessage("No Part Selected (Select multiple parts by holding 'TAB')"); } }
private void AlignPartsRotationTo(IPartScript part) { if (_selectorManager.selectedParts.Count > 0) { if (_toolState != null) { foreach (IPartScript selectedPart in _selectorManager.selectedParts) { Vector3 selectedPartRot = selectedPart.Transform.rotation.eulerAngles; Vector3 newRotation; float DeltaRotation; if (_toolState.Axis == 'X') { DeltaRotation = part.Transform.rotation.eulerAngles.x - selectedPartRot.x; newRotation = new Vector3(selectedPartRot.x + DeltaRotation, selectedPartRot.y, selectedPartRot.z); } else if (_toolState.Axis == 'Y') { DeltaRotation = part.Transform.rotation.eulerAngles.y - selectedPartRot.y; newRotation = new Vector3(selectedPartRot.x, selectedPartRot.y + DeltaRotation, selectedPartRot.z); } else { DeltaRotation = part.Transform.rotation.eulerAngles.z - selectedPartRot.z; newRotation = new Vector3(selectedPartRot.x, selectedPartRot.y, selectedPartRot.z + DeltaRotation); } selectedPart.Transform.rotation = Quaternion.Euler(newRotation); } _designer.DesignerUi.ShowMessage("Parts Rotation Aligned"); } else { _designer.DesignerUi.ShowMessage(_mod.errorColor + "Part Alignment failed : ToolState Changed"); } } else { _designer.DesignerUi.ShowMessage(_mod.errorColor = "Part Alignment failed : Part Selection Changed"); } _toolState = null; }
private void AlignPartsTo(IPartScript part) { if (_SelectorManager.SelectedParts.Count > 0) { if (_ToolState != null) { foreach (IPartScript selectedPart in _SelectorManager.SelectedParts) { Vector3 selectedPartPos = selectedPart.Transform.position; Vector3 newPosition; float DeltaPosition; if (_ToolState.Axis == 'X') { DeltaPosition = part.Transform.position.x - selectedPartPos.x; newPosition = new Vector3(selectedPartPos.x + DeltaPosition, selectedPartPos.y, selectedPartPos.z); } else if (_ToolState.Axis == 'Y') { DeltaPosition = part.Transform.position.y - selectedPartPos.y; newPosition = new Vector3(selectedPartPos.x, selectedPartPos.y + DeltaPosition, selectedPartPos.z); } else { DeltaPosition = part.Transform.position.z - selectedPartPos.z; newPosition = new Vector3(selectedPartPos.x, selectedPartPos.y, selectedPartPos.z + DeltaPosition); } selectedPart.Transform.position = newPosition; } _Designer.DesignerUi.ShowMessage("Part Aligned"); } else { _Designer.DesignerUi.ShowMessage("<color=#b33e46> Part Alignment failed : ToolState Changed"); } } else { _Designer.DesignerUi.ShowMessage("<color=#b33e46> Part Alignment failed : Part Selection Changed"); } _ToolState = null; }