parent
a4108f2caf
commit
a9b38b9417
@ -0,0 +1,91 @@ |
||||
package mightypork.gamecore.input; |
||||
|
||||
|
||||
import mightypork.gamecore.core.BackendModule; |
||||
import mightypork.utils.math.constraints.vect.Vect; |
||||
|
||||
|
||||
/** |
||||
* Abstract input module |
||||
* |
||||
* @author Ondřej Hruška (MightyPork) |
||||
*/ |
||||
public abstract class InputModule extends BackendModule implements KeyBinder { |
||||
|
||||
protected KeyBindingPool keybindings; |
||||
|
||||
|
||||
@Override |
||||
public final void init() |
||||
{ |
||||
keybindings = new KeyBindingPool(); |
||||
addChildClient(keybindings); |
||||
initDevices(); |
||||
} |
||||
|
||||
|
||||
protected abstract void initDevices(); |
||||
|
||||
|
||||
@Override |
||||
public void bindKey(KeyStroke stroke, Edge edge, Runnable task) |
||||
{ |
||||
keybindings.bindKey(stroke, edge, task); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public void unbindKey(KeyStroke stroke) |
||||
{ |
||||
keybindings.unbindKey(stroke); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* Get absolute mouse position. Should always return the same Vect instance |
||||
* (use a VectVar or similar). |
||||
* |
||||
* @return mouse position |
||||
*/ |
||||
public abstract Vect getMousePos(); |
||||
|
||||
|
||||
/** |
||||
* Check if mouse is inside window |
||||
* |
||||
* @return true if mouse is inside window. |
||||
*/ |
||||
public abstract boolean isMouseInside(); |
||||
|
||||
|
||||
/** |
||||
* Trap mouse cursor in the window / release it |
||||
* |
||||
* @param grab true to grab, false to release |
||||
*/ |
||||
public abstract void grabMouse(boolean grab); |
||||
|
||||
|
||||
/** |
||||
* Check if key is down (constant from the {@link Keys} class) |
||||
* |
||||
* @param key key to check |
||||
* @return is down |
||||
*/ |
||||
public abstract boolean isKeyDown(int key); |
||||
|
||||
|
||||
/** |
||||
* Check mouse button state |
||||
* |
||||
* @param button button to test (0 left, 1 right, 2 middle) |
||||
* @return button is down |
||||
*/ |
||||
public abstract boolean isMouseButtonDown(int button); |
||||
|
||||
|
||||
/** |
||||
* @return bit mask of active mod keys |
||||
*/ |
||||
public abstract int getActiveModKeys(); |
||||
} |
@ -1,15 +0,0 @@ |
||||
package mightypork.gamecore.input.events; |
||||
|
||||
|
||||
import mightypork.utils.eventbus.BusEvent; |
||||
|
||||
|
||||
public class InputReadyEvent extends BusEvent<InputReadyListener> { |
||||
|
||||
@Override |
||||
protected void handleBy(InputReadyListener handler) |
||||
{ |
||||
handler.onInputReady(); |
||||
} |
||||
|
||||
} |
@ -1,7 +0,0 @@ |
||||
package mightypork.gamecore.input.events; |
||||
|
||||
|
||||
public interface InputReadyListener { |
||||
|
||||
void onInputReady(); |
||||
} |
Loading…
Reference in new issue