Exemplo n.º 1
0
 public void OnRightClic()
 {
     if (_selectorManager.requestPartSelectionEvent)
     {
         _selectorManager.requestPartSelectionEvent = false;
         _designer.DesignerUi.ShowMessage("Canceled");
         _toolState = null;
     }
 }
Exemplo n.º 2
0
        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')");
            }
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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;
        }