예제 #1
0
        private void RotateTractoredShip(Direction direction, Action callback)
        {
            //We need to change Selection.ThisShip before rotating. Making sure that we always change back afterwards
            var selectedShip = Selection.ThisShip;

            Selection.ThisShip = TheShip;

            Action resetSelection = () =>
            {
                Selection.ThisShip = selectedShip;
                callback();
            };

            Action assignStress = () =>
            {
                TheShip.Tokens.AssignToken(typeof(StressToken), resetSelection);
            };

            if (direction == Direction.Left)
            {
                TheShip.Rotate90Counterclockwise(assignStress);
            }
            else if (direction == Direction.Right)
            {
                TheShip.Rotate90Clockwise(assignStress);
            }
            else
            {
                resetSelection();
            }
        }