anchor.diff:        case Direction.RIGHT:
           mainDirection = rightDirection;
           break;
  +
  +      case Direction.UPLEFT:
  +        mainDirection = upLeftDirection;
  +        break;
  +      case Direction.UPRIGHT:
  +        mainDirection = upRightDirection;
  +        break;
  +      case Direction.DOWNLEFT:
  +        mainDirection = downLeftDirection;
  +        break;
  +      case Direction.DOWNRIGHT:
  +        mainDirection = downRightDirection;
  +        break;
       }
     }
   
  
positive.code:   StageXL.Vector downDirection = new StageXL.Vector(0, 1);
    StageXL.Vector leftDirection = new StageXL.Vector(-1, 0);
    StageXL.Vector rightDirection = new StageXL.Vector(1, 0);
    
    StageXL.Vector leftUpDirection;
    StageXL.Vector rightUpDirection;
    
    StageXL.Vector leftDownDirection;
    StageXL.Vector rightDownDirection;
    
    DirectionSystem() {
      leftUpDirection = upDirection.rotate(-90 * (math.PI / 180));
      rightUpDirection = upDirection.rotate(90 * (math.PI / 180));
      
      leftDownDirection = downDirection.rotate(90 * (math.PI / 180));
      rightDownDirection = downDirection.rotate(-90 * (math.PI / 180));
    }
  
    /**
  
negative.code:    */
    void rotateDirectionsRadians(num radians) {
      mainDirection = mainDirection.rotate(radians);
      
      upDirection = upDirection.rotate(radians);
      downDirection = downDirection.rotate(radians);
      leftDirection = leftDirection.rotate(radians);
      rightDirection = rightDirection.rotate(radians);
      
      upLeftDirection = upLeftDirection.rotate(radians);
      upRightDirection = upRightDirection.rotate(radians);
      downLeftDirection = downLeftDirection.rotate(radians);
      downRightDirection = downRightDirection.rotate(radians);
    }
  
    /**
  