more controls fixes
This commit is contained in:
parent
5c38ad7e1a
commit
7efa0acf70
@ -7,7 +7,7 @@ import electrosphere.logger.LoggerInterface;
|
|||||||
|
|
||||||
public class ControlCallback implements GLFWKeyCallbackI {
|
public class ControlCallback implements GLFWKeyCallbackI {
|
||||||
|
|
||||||
static final int KEY_VALUE_ARRAY_SIZE = 512;
|
static final short KEY_VALUE_ARRAY_SIZE = 512;
|
||||||
|
|
||||||
boolean[] keyValues = new boolean[KEY_VALUE_ARRAY_SIZE];
|
boolean[] keyValues = new boolean[KEY_VALUE_ARRAY_SIZE];
|
||||||
|
|
||||||
|
|||||||
@ -363,7 +363,6 @@ public class ControlHandler {
|
|||||||
GroundMovementTree movementTree = CreatureUtils.getEntityMovementTree(Globals.playerCharacter);
|
GroundMovementTree movementTree = CreatureUtils.getEntityMovementTree(Globals.playerCharacter);
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(
|
if(
|
||||||
(movementTree.getState()==MovementTreeState.IDLE || movementTree.getState()==MovementTreeState.SLOWDOWN) &&
|
|
||||||
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
||||||
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).getKeyValue()))
|
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).getKeyValue()))
|
||||||
){
|
){
|
||||||
@ -377,7 +376,6 @@ public class ControlHandler {
|
|||||||
GroundMovementTree movementTree = CreatureUtils.getEntityMovementTree(Globals.playerCharacter);
|
GroundMovementTree movementTree = CreatureUtils.getEntityMovementTree(Globals.playerCharacter);
|
||||||
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
|
||||||
if(
|
if(
|
||||||
(movementTree.getState()==MovementTreeState.IDLE || movementTree.getState()==MovementTreeState.SLOWDOWN) &&
|
|
||||||
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
|
||||||
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).getKeyValue()))
|
(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).isIsKey() && !Globals.controlCallback.getKey(controls.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).getKeyValue()))
|
||||||
){
|
){
|
||||||
@ -658,7 +656,7 @@ public class ControlHandler {
|
|||||||
control.setState(false);
|
control.setState(false);
|
||||||
}
|
}
|
||||||
} else if(control.isIsMouse()){
|
} else if(control.isIsMouse()){
|
||||||
if(Globals.controlCallback.getKey(control.getKeyValue())){
|
if(Globals.mouseCallback.getButton(control.getKeyValue())){
|
||||||
if(!control.isState()){
|
if(!control.isState()){
|
||||||
//on press
|
//on press
|
||||||
control.onPress();
|
control.onPress();
|
||||||
|
|||||||
39
src/main/java/electrosphere/controls/MouseCallback.java
Normal file
39
src/main/java/electrosphere/controls/MouseCallback.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package electrosphere.controls;
|
||||||
|
|
||||||
|
import org.lwjgl.glfw.GLFW;
|
||||||
|
import org.lwjgl.glfw.GLFWMouseButtonCallback;
|
||||||
|
|
||||||
|
import electrosphere.logger.LoggerInterface;
|
||||||
|
|
||||||
|
public class MouseCallback extends GLFWMouseButtonCallback {
|
||||||
|
|
||||||
|
static final short KEY_VALUE_ARRAY_SIZE = 512;
|
||||||
|
|
||||||
|
boolean[] buttonValues = new boolean[KEY_VALUE_ARRAY_SIZE];
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invoke(long window, int button, int action, int mods) {
|
||||||
|
if(button >= 0 && button < KEY_VALUE_ARRAY_SIZE){
|
||||||
|
if(action == GLFW.GLFW_PRESS || action == GLFW.GLFW_REPEAT){
|
||||||
|
buttonValues[button] = true;
|
||||||
|
} else {
|
||||||
|
buttonValues[button] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* !!!WARNING!!!, will silently fail if
|
||||||
|
* @param keycode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean getButton(int keycode){
|
||||||
|
if(keycode >= 0 && keycode < KEY_VALUE_ARRAY_SIZE){
|
||||||
|
return buttonValues[keycode];
|
||||||
|
} else {
|
||||||
|
LoggerInterface.loggerEngine.WARNING("Trying to get button state where keycode is undefined (<0 or >400)");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -10,6 +10,7 @@ import com.google.gson.Gson;
|
|||||||
import electrosphere.audio.AudioEngine;
|
import electrosphere.audio.AudioEngine;
|
||||||
import electrosphere.controls.ControlCallback;
|
import electrosphere.controls.ControlCallback;
|
||||||
import electrosphere.controls.ControlHandler;
|
import electrosphere.controls.ControlHandler;
|
||||||
|
import electrosphere.controls.MouseCallback;
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
import electrosphere.entity.EntityManager;
|
import electrosphere.entity.EntityManager;
|
||||||
import electrosphere.game.collision.CollisionEngine;
|
import electrosphere.game.collision.CollisionEngine;
|
||||||
@ -121,6 +122,7 @@ public class Globals {
|
|||||||
public static ControlHandler controlHandler;
|
public static ControlHandler controlHandler;
|
||||||
public static boolean updateCamera = true;
|
public static boolean updateCamera = true;
|
||||||
public static ControlCallback controlCallback;
|
public static ControlCallback controlCallback;
|
||||||
|
public static MouseCallback mouseCallback;
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package electrosphere.renderer;
|
package electrosphere.renderer;
|
||||||
|
|
||||||
import electrosphere.controls.ControlCallback;
|
import electrosphere.controls.ControlCallback;
|
||||||
|
import electrosphere.controls.MouseCallback;
|
||||||
import electrosphere.entity.CameraEntityUtils;
|
import electrosphere.entity.CameraEntityUtils;
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
import electrosphere.entity.EntityDataStrings;
|
import electrosphere.entity.EntityDataStrings;
|
||||||
@ -164,6 +165,10 @@ public class RenderingEngine {
|
|||||||
Globals.controlCallback = new ControlCallback();
|
Globals.controlCallback = new ControlCallback();
|
||||||
GLFW.glfwSetKeyCallback(Globals.window, Globals.controlCallback);
|
GLFW.glfwSetKeyCallback(Globals.window, Globals.controlCallback);
|
||||||
|
|
||||||
|
//set mouse callback
|
||||||
|
Globals.mouseCallback = new MouseCallback();
|
||||||
|
GLFW.glfwSetMouseButtonCallback(Globals.window, Globals.mouseCallback);
|
||||||
|
|
||||||
//get title bar dimensions
|
//get title bar dimensions
|
||||||
// setTitleBarDimensions();
|
// setTitleBarDimensions();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user