anchor.diff:    /**
      * Sets the main direction vector.
      * 
  -   * Direction can be: up/forward, down/backward, left, right
  +   * Direction can be: up/forward, down/backward, left, right, upleft, upright, downleft, downright
      */
     void setMainDirection(String direction) {
       switch (direction) {
  
positive.code:   }
  
    /**
     * Rotate direction vectors(main, up, down, left, right) in radians.
     */
    void rotateDirectionsRadians(num radians) {
      mainDirection = mainDirection.rotate(radians);
  
negative.code:   StageXL.Vector downRightDirection;
  
    DirectionSystem() {
      upLeftDirection = upDirection.rotate(_makeRadians(-45));
      upRightDirection = upDirection.rotate(_makeRadians(45));
      
      downLeftDirection = downDirection.rotate(_makeRadians(45));
      downRightDirection = downDirection.rotate(_makeRadians(-45));
    }
  
    /**
     * Add a direction to the main direction.
     * 
     * The method add another direction vector to the main direction and
     * it will scale down the main direction if the main direction vector's langth is bigger then 1.
     * In another world the main direction will stay as an unit vector.
     *
     * Direction can be: up/forward, down/backward, left, right, upleft, upright, downleft, downright
     */
    void addToMainDirection(String direction) {
  
  