Beispiel #1
0
        private void Update()
        {
            if (Input.mouseScrollDelta.SqrMagnitude() != 0)
            {
                _selectionController.ClearSelection();
                _zoomValue = _baseZoomValue + Input.mouseScrollDelta.y * _scrollFactor;

                if (_zoomValue > 0)
                {
                    _grid.ZoomGrid(_zoomValue);
                }
            }
        }
Beispiel #2
0
        private static void Rotate(DrawableBase drawable, float angle)
        {
            if (_grid.TryRotate(drawable, angle))
            {
                _selectionController.ClearSelection();

                drawable.RotateAroundPivot(angle);
                _grid.SetGridCells(drawable.transform.position, drawable);

                if (drawable.GetType().IsSubclassOf(typeof(CharacterBase)))
                {
                    var charBase = (CharacterBase)drawable;
                    charBase.RemoveAllConnections();
                    charBase.UpdateConnectionPoints();
                }

                _selectionController.AddToSelection(drawable);
            }
        }
Beispiel #3
0
        public static void StartMove(DrawableBase moveHandle, Vector2 startDragPos, List <DrawableBase> drawables)
        {
            _selection     = drawables;
            _startDragCell = _grid.GetGridCell(moveHandle.transform.position);
            _moveHandle    = moveHandle;
            _snapDiff      = Vector2.zero;

            drawables.ForEach(d =>
            {
                d.transform.SetAsLastSibling();
                d.ClearCells();
                _oldPositions.Add(d, d.ScreenPivot);

                if (d.Type != DrawableBase.DrawableType.Wire)
                {
                    var character = d as CharacterBase;
                    character.PowerOn(0);
                }
            });

            _selectionController.ClearSelection();
            _isMoving = true;
        }