Package net.cis.client.game.ctrl

Source Code of net.cis.client.game.ctrl.CameraCtrl

package net.cis.client.game.ctrl;

import net.cis.client.game.common.ctrl.IObjectController;
import net.cis.client.game.common.model.InputStrings;
import net.cis.client.game.common.model.co.ControlledCamera;
import net.cis.client.game.common.model.co.ControlledCamera.CameraType;
import net.cis.client.game.common.util.GlobalObjectStore;
import net.cis.client.game.scenery.factory.CameraFactory;
import net.cis.common.model.base.BaseFactory;
import net.cis.common.model.base.CameraDefinition;

import com.jme3.input.controls.ActionListener;

public class CameraCtrl implements ActionListener {

  private final CameraFactory cameraFactory;
  private final CameraDefinition cameraDef;

  private ControlledCamera currentCamera;

  public CameraCtrl(GameApplication gameApp) {
    cameraFactory = new CameraFactory(gameApp.getCamera());
    // FIXME: load from persistence
    cameraDef = BaseFactory.eINSTANCE.createCameraDefinition();

    currentCamera = cameraFactory.createControlledObject(cameraDef, true);
    GlobalObjectStore.<IObjectController>getObject(IObjectController.class).addCamera(currentCamera, true);
  }

  @Override
  public void onAction(String name, boolean isPressed, float tpf) {
    if (isPressed)
      return;

    IObjectController objectController = GlobalObjectStore.<IObjectController>getObject(IObjectController.class);
   
    if (name.equals(InputStrings.CAMERA_1ST)) {
      if (currentCamera.cameraType.equals(CameraType.FirstPerson))
        return;

      objectController.removeControlledObjectFromScene(currentCamera);
      cameraFactory.setCreatedCamera(CameraType.FirstPerson);
      currentCamera = cameraFactory.createControlledObject(cameraDef, true);
      objectController.addCamera(currentCamera, true);

    } else if (name.equals(InputStrings.CAMERA_3RD)) {
      if (currentCamera.cameraType.equals(CameraType.ThirdPerson))
        return;

      objectController.removeControlledObjectFromScene(currentCamera);
      cameraFactory.setCreatedCamera(CameraType.ThirdPerson);
      currentCamera = cameraFactory.createControlledObject(cameraDef, true);
      objectController.addCamera(currentCamera, true);
    }
  }
}
TOP

Related Classes of net.cis.client.game.ctrl.CameraCtrl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.