diff --git a/build.gradle b/build.gradle index 350fea9..fd80eb1 100644 --- a/build.gradle +++ b/build.gradle @@ -20,10 +20,11 @@ plugins { repositories { jcenter() + maven { + url "https://dl.bintray.com/jmonkeyengine/org.jmonkeyengine" + } } -sourceCompatibility = "1.8" -targetCompatibility = "1.8" [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' ext { @@ -40,6 +41,8 @@ dependencies { implementation "${jme3.g}:jme3-core:${jme3.version}" implementation "${jme3.g}:jme3-desktop:${jme3.version}" implementation "${jme3.g}:jme3-lwjgl3:${jme3.version}" + implementation "org.codehaus.groovy:groovy-all:2.4.5" + implementation "com.simsilica:lemur:1.14.0" } // Define the main class for the application diff --git a/src/main/java/markil3/controller/CalibrateInputScreen.java b/src/main/java/markil3/controller/CalibrateInputScreen.java new file mode 100644 index 0000000..f7d1661 --- /dev/null +++ b/src/main/java/markil3/controller/CalibrateInputScreen.java @@ -0,0 +1,888 @@ +package markil3.controller; + +import com.jme3.app.Application; +import com.jme3.app.SimpleApplication; +import com.jme3.app.state.BaseAppState; +import com.jme3.font.BitmapFont; +import com.jme3.font.BitmapText; +import com.jme3.input.Joystick; +import com.jme3.input.JoystickAxis; +import com.jme3.input.JoystickButton; +import com.jme3.input.RawInputListener; +import com.jme3.input.event.JoyAxisEvent; +import com.jme3.input.event.JoyButtonEvent; +import com.jme3.input.event.KeyInputEvent; +import com.jme3.input.event.MouseButtonEvent; +import com.jme3.input.event.MouseMotionEvent; +import com.jme3.input.event.TouchEvent; +import com.jme3.material.Material; +import com.jme3.math.ColorRGBA; +import com.jme3.renderer.Camera; +import com.jme3.scene.Geometry; +import com.jme3.scene.Node; +import com.jme3.scene.shape.Quad; +import com.simsilica.lemur.Axis; +import com.simsilica.lemur.Button; +import com.simsilica.lemur.Command; +import com.simsilica.lemur.Container; +import com.simsilica.lemur.FillMode; +import com.simsilica.lemur.HAlignment; +import com.simsilica.lemur.Label; +import com.simsilica.lemur.component.BoxLayout; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Properties; + +import static markil3.controller.JoystickPreviewScreen.ACTION_BOTTOM; +import static markil3.controller.JoystickPreviewScreen.ACTION_LEFT; +import static markil3.controller.JoystickPreviewScreen.ACTION_RIGHT; +import static markil3.controller.JoystickPreviewScreen.ACTION_TOP; +import static markil3.controller.JoystickPreviewScreen.DPAD_DOWN; +import static markil3.controller.JoystickPreviewScreen.DPAD_LEFT; +import static markil3.controller.JoystickPreviewScreen.DPAD_RIGHT; +import static markil3.controller.JoystickPreviewScreen.DPAD_UP; +import static markil3.controller.JoystickPreviewScreen.L1; +import static markil3.controller.JoystickPreviewScreen.L2; +import static markil3.controller.JoystickPreviewScreen.L3; +import static markil3.controller.JoystickPreviewScreen.R1; +import static markil3.controller.JoystickPreviewScreen.R2; +import static markil3.controller.JoystickPreviewScreen.R3; +import static markil3.controller.JoystickPreviewScreen.SELECT; +import static markil3.controller.JoystickPreviewScreen.START; +import static markil3.controller.Main.CALIBRATION_FILE; + +/** + * Provides a series of prompts that will build a controller calibration file. + * @author Markil3 + */ +public class CalibrateInputScreen extends BaseAppState + implements Command