public GridMapState() {

    Vec3 eye = new Vec3(0.0f, 4.0f, 6.0f);
    Vec3 look = new Vec3(0.0f, 2.0f, -1.0f);
    Vec3 up = new Vec3(0.0f, 1.0f, 0.0f);
    float near = 1.0f;
    float far = 1000.0f;
    float fov = 50.0f;

    try {

      Vec3 pushback = new Vec3(0.0f, 0.0f, -5.0f);
      List<InputUiElement> uiElements = GeometryIO.loadInputUiElements(R.raw.gray_ui);
      for (InputUiElement iu : uiElements) {
        iu.translate(pushback.getX(), pushback.getY(), pushback.getZ());
      }
      mInputHandlers.addAll(uiElements);
      mUi.addAll(GeometryIO.loadUiElements(R.raw.gray_ui));
      pushback = new Vec3(0.0f, 0.0f, -6.0f);
      for (Geometry g : mUi) {
        g.translate(pushback);
      }

      Map<String, Geometry> island = GeometryIO.loadGeometryMap(R.raw.island);
      Geometry arrow = island.get("Arrow");

      mActor = new Actor(arrow);
      mActor.changeState(new MatchHeadingWithDirectionState());
      mActor.rotate(180.0f, new Vec3(0, 1.0f, 0));

      mCamera = new CameraNode(eye, look, up, near, far, fov, mActor);
      mCamera.resizeViewport(GameWorld.inst().getViewport());
      GridMapRenderer gmr = (GridMapRenderer) RendererManager.getRenderer();
      gmr.setCurrentCamera(mCamera);
      mCamera.setParent(mActor);

      //			mCamera.rotate(-30.0f, new Vec3(1.0f,0.0f,0.0f));

      mActor.addChild(mCamera);
      mScene.addChild(mActor);

      Skybox skybox = new Skybox("skybox_shader", "tenerife_etc1");
      mScene.addChild(skybox);

      Geometry terrain = island.get("Landscape");
      mScene.addChild(new GeometryNode(terrain));

      Geometry ocean = island.get("Water");
      WaterNode wn = new WaterNode(ocean);
      wn.setSkybox(skybox);
      mScene.addChild(wn);

    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
  @Override
  public void enter() {
    RendererManager.getRenderer().initOpenGLDefault();
    for (CommandEnum ce : CommandEnum.values()) {
      ce.getCommand().onStateChanged();
    }

    GridMapRenderer gmr = (GridMapRenderer) RendererManager.getRenderer();
    gmr.setCurrentCamera(mCamera);

    startTime = SystemClock.uptimeMillis();
    duration = 5000L;
  }