Base of InputModule refactoring

master
Ondřej Hruška 11 years ago
parent a4108f2caf
commit a9b38b9417
  1. 4
      src/junk/BaseApp.java
  2. 14
      src/mightypork/gamecore/backends/lwjgl/LwjglBackend.java
  3. 118
      src/mightypork/gamecore/backends/lwjgl/LwjglInputModule.java
  4. 27
      src/mightypork/gamecore/backends/lwjgl/audio/SlickAudioModule.java
  5. 34
      src/mightypork/gamecore/backends/lwjgl/graphics/LwjglGraphicsModule.java
  6. 1
      src/mightypork/gamecore/backends/lwjgl/graphics/font/DeferredLwjglFont.java
  7. 1
      src/mightypork/gamecore/backends/lwjgl/graphics/font/DeferredLwjglFontFromSystem.java
  8. 30
      src/mightypork/gamecore/core/App.java
  9. 9
      src/mightypork/gamecore/core/AppBackend.java
  10. 3
      src/mightypork/gamecore/core/BackendModule.java
  11. 3
      src/mightypork/gamecore/core/InitTask.java
  12. 1
      src/mightypork/gamecore/core/config/InitTaskConfig.java
  13. 2
      src/mightypork/gamecore/core/init/InitTaskDisplay.java
  14. 17
      src/mightypork/gamecore/graphics/GraphicsModule.java
  15. 5
      src/mightypork/gamecore/gui/components/BaseComponent.java
  16. 5
      src/mightypork/gamecore/gui/components/input/TextButton.java
  17. 4
      src/mightypork/gamecore/gui/screens/Overlay.java
  18. 91
      src/mightypork/gamecore/input/InputModule.java
  19. 14
      src/mightypork/gamecore/input/KeyBinding.java
  20. 8
      src/mightypork/gamecore/input/KeyStroke.java
  21. 15
      src/mightypork/gamecore/input/events/InputReadyEvent.java
  22. 7
      src/mightypork/gamecore/input/events/InputReadyListener.java
  23. 1
      src/mightypork/gamecore/resources/loading/ResourceLoader.java
  24. 4
      src/mightypork/rogue/RogueApp.java
  25. 2
      src/mightypork/rogue/RogueKeys.java
  26. 2
      src/mightypork/rogue/RogueRoutes.java
  27. 4
      src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java
  28. 10
      src/mightypork/rogue/world/gui/interaction/MIPMouse.java

@ -3,6 +3,7 @@ package junk;
import java.lang.Thread.UncaughtExceptionHandler;
import mightypork.gamecore.backends.lwjgl.LwjglInputModule;
import mightypork.gamecore.core.App;
import mightypork.gamecore.core.AppBackend;
import mightypork.gamecore.core.MainLoop;
@ -10,7 +11,6 @@ import mightypork.gamecore.core.WorkDir;
import mightypork.gamecore.core.config.Config;
import mightypork.gamecore.gui.screens.ScreenRegistry;
import mightypork.gamecore.gui.screens.impl.CrossfadeOverlay;
import mightypork.gamecore.input.InputSystem;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.ResourceSetup;
import mightypork.utils.logging.Log;
@ -117,7 +117,7 @@ public abstract class BaseApp extends App implements UncaughtExceptionHandler {
* Input
*/
Log.f2("Initializing Input System...");
inputSystem = new InputSystem(this);
inputSystem = new LwjglInputModule(this);
initInputSystem(inputSystem);
/*

@ -6,6 +6,7 @@ import mightypork.gamecore.backends.lwjgl.audio.SlickAudioModule;
import mightypork.gamecore.backends.lwjgl.graphics.LwjglGraphicsModule;
import mightypork.gamecore.core.AppBackend;
import mightypork.gamecore.graphics.GraphicsModule;
import mightypork.gamecore.input.InputModule;
/**
@ -17,6 +18,7 @@ public class LwjglBackend extends AppBackend {
private LwjglGraphicsModule graphics;
private SlickAudioModule audio;
private LwjglInputModule input;
@Override
@ -24,6 +26,11 @@ public class LwjglBackend extends AppBackend {
{
addChildClient(graphics = new LwjglGraphicsModule());
addChildClient(audio = new SlickAudioModule());
addChildClient(input = new LwjglInputModule());
graphics.init();
audio.init();
input.init();
app.addInitTask(new InitTaskRedirectSlickLog());
}
@ -41,4 +48,11 @@ public class LwjglBackend extends AppBackend {
{
return audio;
}
@Override
public InputModule getInput()
{
return input;
}
}

@ -1,14 +1,13 @@
package mightypork.gamecore.input;
package mightypork.gamecore.backends.lwjgl;
import mightypork.gamecore.core.App;
import mightypork.gamecore.core.events.UserQuitRequest;
import mightypork.gamecore.input.events.InputReadyEvent;
import mightypork.gamecore.input.InputModule;
import mightypork.gamecore.input.Keys;
import mightypork.gamecore.input.events.KeyEvent;
import mightypork.gamecore.input.events.MouseButtonEvent;
import mightypork.gamecore.input.events.MouseMotionEvent;
import mightypork.utils.eventbus.clients.BusNode;
import mightypork.utils.interfaces.Destroyable;
import mightypork.utils.interfaces.Updateable;
import mightypork.utils.math.constraints.vect.Vect;
import mightypork.utils.math.constraints.vect.var.VectVar;
@ -24,9 +23,7 @@ import org.lwjgl.opengl.Display;
*
* @author Ondřej Hruška (MightyPork)
*/
public class InputSystem extends BusNode implements Updateable, KeyBinder, Destroyable {
private static boolean inited = false;
public class LwjglInputModule extends InputModule implements Updateable {
/** Current mouse position */
private static final Vect mousePos = new Vect() {
@ -49,40 +46,18 @@ public class InputSystem extends BusNode implements Updateable, KeyBinder, Destr
}
};
private final KeyBindingPool keybindings;
private final VectVar mouseMove = Vect.makeVar();
private final VectVar mouseLastPos = Vect.makeVar();
/**
* @param app app access
*/
public InputSystem() {
initDevices();
// global keybindings
keybindings = new KeyBindingPool();
addChildClient(keybindings);
App.bus().send(new InputReadyEvent());
}
@Override
public final void destroy()
public void destroy()
{
Mouse.destroy();
Keyboard.destroy();
}
private void initDevices()
@Override
protected void initDevices()
{
if (inited) return;
inited = true;
try {
Mouse.create();
Keyboard.create();
@ -92,19 +67,8 @@ public class InputSystem extends BusNode implements Updateable, KeyBinder, Destr
}
}
@Override
public final void bindKey(KeyStroke stroke, Edge edge, Runnable task)
{
keybindings.bindKey(stroke, edge, task);
}
@Override
public void unbindKey(KeyStroke stroke)
{
keybindings.unbindKey(stroke);
}
private final VectVar mouseMove = Vect.makeVar();
private final VectVar mouseLastPos = Vect.makeVar();
@Override
@ -172,94 +136,62 @@ public class InputSystem extends BusNode implements Updateable, KeyBinder, Destr
}
/**
* Get absolute mouse position. This vect is final and views at it can
* safely be made.
*
* @return mouse position
*/
public static Vect getMousePos()
@Override
public Vect getMousePos()
{
return mousePos;
}
/**
* @return true if mouse is inside window.
*/
public static boolean isMouseInside()
@Override
public boolean isMouseInside()
{
return Mouse.isInsideWindow();
}
/**
* Trap mouse cursor in the window
*
* @param grab true to grab
*/
public static void grabMouse(boolean grab)
@Override
public void grabMouse(boolean grab)
{
Mouse.setGrabbed(grab);
}
/**
* Check if key is down
*
* @param key key to check (constant from the {@link Keys} class)
* @return is down
*/
public static boolean isKeyDown(int key)
@Override
public boolean isKeyDown(int key)
{
return Keyboard.isKeyDown(key);
}
/**
* Check mouse button state
*
* @param button button to test (0 left, 1 right, 2 middle)
* @return button is down
*/
public static boolean isMouseButtonDown(int button)
@Override
public boolean isMouseButtonDown(int button)
{
return Mouse.isButtonDown(button);
}
/**
* @return bit mask of active mod keys
*/
public static int getActiveModKeys()
@Override
public int getActiveModKeys()
{
int mods = 0;
if (Keyboard.isKeyDown(Keys.L_ALT) || Keyboard.isKeyDown(Keys.R_ALT)) {
if (isKeyDown(Keys.L_ALT) || isKeyDown(Keys.R_ALT)) {
mods |= Keys.MOD_ALT;
}
if (Keyboard.isKeyDown(Keys.L_SHIFT) || Keyboard.isKeyDown(Keys.R_SHIFT)) {
if (isKeyDown(Keys.L_SHIFT) || isKeyDown(Keys.R_SHIFT)) {
mods |= Keys.MOD_SHIFT;
}
if (Keyboard.isKeyDown(Keys.L_CONTROL) || Keyboard.isKeyDown(Keys.R_CONTROL)) {
if (isKeyDown(Keys.L_CONTROL) || isKeyDown(Keys.R_CONTROL)) {
mods |= Keys.MOD_CONTROL;
}
if (Keyboard.isKeyDown(Keys.L_META) || Keyboard.isKeyDown(Keys.R_META)) {
if (isKeyDown(Keys.L_META) || isKeyDown(Keys.R_META)) {
mods |= Keys.MOD_META;
}
return mods;
}
/**
* @return true if the system is initialized
*/
public static boolean isReady()
{
return inited;
}
}

@ -22,33 +22,22 @@ import org.newdawn.slick.openal.SoundStore;
*/
public class SlickAudioModule extends AudioModule {
private static final Vect INITIAL_LISTENER_POS = Vect.ZERO;
private static final int MAX_SOURCES = 256;
private final VectVar listenerPos = Vect.makeVar();
private VectVar listener = Vect.makeVar();
private static boolean soundSystemInited = false;
public SlickAudioModule() {
if (!soundSystemInited) {
soundSystemInited = true;
try {
SoundStore.get().setMaxSources(MAX_SOURCES);
@Override
public void init()
{
SoundStore.get().setMaxSources(256);
SoundStore.get().init();
setListenerPos(INITIAL_LISTENER_POS);
} catch (final Throwable t) {
Log.e("Error initializing sound system.", t);
}
}
setListenerPos(Vect.ZERO);
}
@Override
public void setListenerPos(Vect pos)
{
listener.setTo(pos);
listenerPos.setTo(pos);
final FloatBuffer buf3 = BufferHelper.alloc(3);
final FloatBuffer buf6 = BufferHelper.alloc(6);
buf3.clear();
@ -66,7 +55,7 @@ public class SlickAudioModule extends AudioModule {
@Override
public Vect getListenerPos()
{
return listener;
return listenerPos;
}

@ -49,7 +49,7 @@ public class LwjglGraphicsModule extends GraphicsModule {
/** FPS the user wants */
private int targetFps;
/** FPS meter used for measuring actual FPS */
private FpsMeter fpsMeter;
private FpsMeter fpsMeter = new FpsMeter();
/** Flag that at the end of frame, fullscreen should be toggled. */
private boolean fullscreenToggleRequested;
@ -79,6 +79,17 @@ public class LwjglGraphicsModule extends GraphicsModule {
private static final Rect rect = Rect.make(screenSize);
@Override
public void init()
{
try {
Display.create();
} catch (final Exception e) {
throw new RuntimeException("Could not initialize display.", e);
}
}
@Override
public void setColor(Color color)
{
@ -423,27 +434,6 @@ public class LwjglGraphicsModule extends GraphicsModule {
}
@Override
public void createDisplay()
{
if (Display.isCreated()) throw new IllegalStateException("Display already created.");
try {
Display.create();
fpsMeter = new FpsMeter();
if (fullscreenSetRequested && fullscreenSetState) {
doToggleFullscreen();
Display.update();
fullscreenSetRequested = false;
}
} catch (final Exception e) {
throw new RuntimeException("Could not initialize display.", e);
}
}
@Override
public void setFullscreen(boolean fs)
{

@ -27,7 +27,6 @@ public class DeferredLwjglFont extends DeferredFont {
private IFont font = null;
/**
* A font from resource
*

@ -4,7 +4,6 @@ package mightypork.gamecore.backends.lwjgl.graphics.font;
import java.awt.Font;
import java.io.IOException;
import mightypork.gamecore.graphics.textures.FilterMode;
import mightypork.utils.annotations.Alias;

@ -2,17 +2,12 @@ package mightypork.gamecore.core;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import mightypork.gamecore.audio.AudioModule;
import mightypork.gamecore.core.config.Config;
import mightypork.gamecore.core.init.InitTaskCrashHandler;
import mightypork.gamecore.core.init.InitTaskIonizables;
import mightypork.gamecore.core.init.InitTaskLog;
import mightypork.gamecore.core.init.InitTaskLogHeader;
import mightypork.gamecore.graphics.GraphicsModule;
import mightypork.gamecore.input.InputModule;
import mightypork.utils.annotations.Stub;
import mightypork.utils.eventbus.EventBus;
import mightypork.utils.eventbus.clients.BusNode;
@ -164,6 +159,10 @@ public class App extends BusNode {
}
/**
* Shut down the running instance.<br>
* Deinitialize backend modules and terminate the JVM.
*/
public static void shutdown()
{
if (instance == null) throw new IllegalStateException("App is not running.");
@ -199,9 +198,9 @@ public class App extends BusNode {
/**
* Get graphics module from the backend
* Get graphics module from the running app's backend
*
* @return backend
* @return graphics module
*/
public static GraphicsModule gfx()
{
@ -210,9 +209,9 @@ public class App extends BusNode {
/**
* Get audio module from the backend
* Get audio module from the running app's backend
*
* @return backend
* @return audio module
*/
public static AudioModule audio()
{
@ -220,6 +219,17 @@ public class App extends BusNode {
}
/**
* Get input module from the running app's backend
*
* @return input module
*/
public static InputModule input()
{
return instance.backend.getInput();
}
/**
* Get event bus instance.
*

@ -3,6 +3,7 @@ package mightypork.gamecore.core;
import mightypork.gamecore.audio.AudioModule;
import mightypork.gamecore.graphics.GraphicsModule;
import mightypork.gamecore.input.InputModule;
import mightypork.utils.eventbus.clients.BusNode;
@ -53,4 +54,12 @@ public abstract class AppBackend extends BusNode {
* @return audio module
*/
public abstract AudioModule getAudio();
/**
* Get input module
*
* @return input module
*/
public abstract InputModule getInput();
}

@ -13,6 +13,9 @@ import mightypork.utils.interfaces.Destroyable;
*/
public abstract class BackendModule extends BusNode implements Destroyable {
public abstract void init();
@Override
@Stub
public void destroy()

@ -29,7 +29,8 @@ public abstract class InitTask {
*
* @param app app
*/
void bind(App app) {
void bind(App app)
{
this.app = app;
}

@ -3,7 +3,6 @@ package mightypork.gamecore.core.config;
import mightypork.gamecore.core.InitTask;
import mightypork.utils.annotations.Stub;
import mightypork.utils.exceptions.IllegalValueException;
/**

@ -85,8 +85,6 @@ public class InitTaskDisplay extends InitTask {
gfx.setTargetFps(fps);
if (fullscreen) gfx.setFullscreen(true);
gfx.createDisplay();
}

@ -4,6 +4,7 @@ package mightypork.gamecore.graphics;
import mightypork.gamecore.core.BackendModule;
import mightypork.gamecore.graphics.textures.DeferredTexture;
import mightypork.gamecore.graphics.textures.TxQuad;
import mightypork.gamecore.gui.events.ViewportChangeEvent;
import mightypork.utils.math.color.Color;
import mightypork.utils.math.color.Grad;
import mightypork.utils.math.constraints.rect.Rect;
@ -280,13 +281,9 @@ public abstract class GraphicsModule extends BackendModule {
/**
* Create a main window, if needed
*/
public abstract void createDisplay();
/**
* Set fullscreen
* Set fullscreen. The fullscreen state will be changed when possible (eg.
* at the end of the current frame) and a {@link ViewportChangeEvent} will
* be fired.
*
* @param fs true for fullscreen
*/
@ -294,13 +291,15 @@ public abstract class GraphicsModule extends BackendModule {
/**
* Request fullscreen toggle (eg. at the end of render frame)
* Request fullscreen toggle. See setFullscreen() for more info)
*/
public abstract void switchFullscreen();
/**
* Get fullscreen state
* Get fullscreen state (note that methods changing fullscreen may not have
* immediate effect, so this method may report the old state if the
* fullscreen state has not yet been changed).
*
* @return is fullscreen
*/

@ -1,10 +1,11 @@
package mightypork.gamecore.gui.components;
import mightypork.gamecore.backends.lwjgl.LwjglInputModule;
import mightypork.gamecore.core.App;
import mightypork.gamecore.graphics.Renderable;
import mightypork.gamecore.gui.events.LayoutChangeEvent;
import mightypork.gamecore.gui.events.LayoutChangeListener;
import mightypork.gamecore.input.InputSystem;
import mightypork.utils.Support;
import mightypork.utils.annotations.Stub;
import mightypork.utils.interfaces.Enableable;
@ -98,7 +99,7 @@ public abstract class BaseComponent extends AbstractRectCache implements Compone
@Override
public final boolean isMouseOver()
{
return InputSystem.getMousePos().isInside(this);
return App.input().getMousePos().isInside(this);
}

@ -1,10 +1,11 @@
package mightypork.gamecore.gui.components.input;
import mightypork.gamecore.backends.lwjgl.LwjglInputModule;
import mightypork.gamecore.core.App;
import mightypork.gamecore.graphics.fonts.IFont;
import mightypork.gamecore.gui.components.DynamicWidthComponent;
import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.input.InputSystem;
import mightypork.utils.math.AlignX;
import mightypork.utils.math.color.Color;
import mightypork.utils.math.color.pal.RGB;
@ -46,7 +47,7 @@ public class TextButton extends ClickableComponent implements DynamicWidthCompon
protected void renderComponent()
{
if (isMouseOver()) {
if (InputSystem.isMouseButtonDown(0)) {
if (App.input().isMouseButtonDown(0)) {
offset.setTo(offsetUnder);
} else {
offset.setTo(hoverMove ? offsetOver : offsetPassive);

@ -4,12 +4,12 @@ package mightypork.gamecore.gui.screens;
import java.util.ArrayList;
import java.util.Collection;
import mightypork.gamecore.backends.lwjgl.LwjglInputModule;
import mightypork.gamecore.core.App;
import mightypork.gamecore.graphics.Renderable;
import mightypork.gamecore.gui.components.layout.ConstraintLayout;
import mightypork.gamecore.gui.events.LayoutChangeListener;
import mightypork.gamecore.input.Edge;
import mightypork.gamecore.input.InputSystem;
import mightypork.gamecore.input.KeyBinder;
import mightypork.gamecore.input.KeyBindingPool;
import mightypork.gamecore.input.KeyStroke;
@ -52,7 +52,7 @@ public abstract class Overlay extends BusNode implements Comparable<Overlay>, Up
public Overlay() {
this.mouse = InputSystem.getMousePos();
this.mouse = App.input().getMousePos();
this.root = new ConstraintLayout(App.gfx().getRect());
addChildClient(root);

@ -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,7 +1,6 @@
package mightypork.gamecore.input;
import mightypork.gamecore.input.events.InputReadyListener;
import mightypork.gamecore.input.events.KeyEvent;
import mightypork.gamecore.input.events.KeyEventHandler;
@ -11,7 +10,7 @@ import mightypork.gamecore.input.events.KeyEventHandler;
*
* @author Ondřej Hruška (MightyPork)
*/
public class KeyBinding implements KeyEventHandler, InputReadyListener {
public class KeyBinding implements KeyEventHandler {
private final KeyStroke keystroke;
private Runnable handler;
@ -28,8 +27,7 @@ public class KeyBinding implements KeyEventHandler, InputReadyListener {
this.keystroke = stroke;
this.handler = handler;
this.edge = edge;
if (InputSystem.isReady()) wasDown = stroke.isDown();
wasDown = stroke.isDown();
}
@ -69,12 +67,4 @@ public class KeyBinding implements KeyEventHandler, InputReadyListener {
handler.run();
}
}
@Override
public void onInputReady()
{
wasDown = keystroke.isDown();
}
}

@ -1,6 +1,7 @@
package mightypork.gamecore.input;
import mightypork.gamecore.core.App;
import mightypork.utils.string.StringUtil;
import org.lwjgl.input.Keyboard;
@ -28,9 +29,10 @@ public class KeyStroke {
}
// FIXME TODO can probably be immutable!
/**
* Change to...
* Change to...<br>
* (KeyStroke is mutable, so that upon changing it in Config, all existing
* key bindings are updated automatically.)
*
* @param key key code
* @param modmask modifiers
@ -58,7 +60,7 @@ public class KeyStroke {
public boolean isDown()
{
boolean st = Keyboard.isKeyDown(key);
st &= (InputSystem.getActiveModKeys() == mod);
st &= (App.input().getActiveModKeys() == mod);
return st;
}

@ -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();
}

@ -1,5 +1,6 @@
package mightypork.gamecore.resources.loading;
import mightypork.gamecore.resources.DeferredResource;

@ -4,6 +4,7 @@ package mightypork.rogue;
import junk.AppInitOptions;
import junk.BaseApp;
import mightypork.gamecore.backends.lwjgl.LwjglBackend;
import mightypork.gamecore.backends.lwjgl.LwjglInputModule;
import mightypork.gamecore.core.config.Config;
import mightypork.gamecore.core.events.MainLoopRequest;
import mightypork.gamecore.core.events.ShudownRequest;
@ -15,7 +16,6 @@ import mightypork.gamecore.gui.events.ViewportChangeEvent;
import mightypork.gamecore.gui.events.ViewportChangeListener;
import mightypork.gamecore.gui.screens.ScreenRegistry;
import mightypork.gamecore.input.Edge;
import mightypork.gamecore.input.InputSystem;
import mightypork.gamecore.resources.Res;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
@ -104,7 +104,7 @@ public final class RogueApp extends BaseApp implements ViewportChangeListener, S
@Override
protected void initInputSystem(InputSystem input)
protected void initInputSystem(LwjglInputModule input)
{
// this will work only with reusable events (such as requests)
bindEventToKey(new FullscreenToggleRequest(), "global.fullscreen");

@ -1,8 +1,6 @@
package mightypork.rogue;
public class RogueKeys implements KeySetup {
@Override

@ -1,8 +1,6 @@
package mightypork.rogue;
public class RogueRoutes implements RouteSetup {
@Override

@ -5,9 +5,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import mightypork.gamecore.backends.lwjgl.LwjglInputModule;
import mightypork.gamecore.core.config.Config;
import mightypork.gamecore.input.Edge;
import mightypork.gamecore.input.InputSystem;
import mightypork.gamecore.input.KeyBindingPool;
import mightypork.gamecore.input.KeyStroke;
import mightypork.gamecore.input.Keys;
@ -103,7 +103,7 @@ public class MIPKeyboard extends MapInteractionPlugin implements DelegatingClien
if (mapView.plc.getPlayer().getMoveProgress() < 0.8) return false;
if (InputSystem.getActiveModKeys() != Keys.MOD_NONE) return false;
if (LwjglInputModule.getActiveModKeys() != Keys.MOD_NONE) return false;
for (int i = 0; i < 4; i++) {
if (keys[i].isDown()) {

@ -1,7 +1,7 @@
package mightypork.rogue.world.gui.interaction;
import mightypork.gamecore.input.InputSystem;
import mightypork.gamecore.backends.lwjgl.LwjglInputModule;
import mightypork.rogue.world.entity.impl.EntityPlayer;
import mightypork.rogue.world.events.PlayerStepEndListener;
import mightypork.rogue.world.gui.MapView;
@ -30,10 +30,10 @@ public class MIPMouse extends MapInteractionPlugin implements PlayerStepEndListe
{
if (isImmobile()) return;
final Vect pos = InputSystem.getMousePos();
final Vect pos = LwjglInputModule.getMousePos();
if (!pos.isInside(mapView)) return;
if (InputSystem.isMouseButtonDown(LEFT)) {
if (LwjglInputModule.isMouseButtonDown(LEFT)) {
if (mouseWalk(pos)) return;
if (mapView.plc.getPlayer().isMoving() && troToNav(pos)) return;
}
@ -117,10 +117,10 @@ public class MIPMouse extends MapInteractionPlugin implements PlayerStepEndListe
{
if (isImmobile()) return;
final Vect pos = InputSystem.getMousePos();
final Vect pos = LwjglInputModule.getMousePos();
if (!pos.isInside(mapView)) return;
if (InputSystem.isMouseButtonDown(LEFT)) {
if (LwjglInputModule.isMouseButtonDown(LEFT)) {
if (mouseWalk(pos)) return;
if (mapView.plc.getPlayer().isMoving() && troToNav(pos)) return;
}

Loading…
Cancel
Save