diff --git a/build.gradle b/build.gradle index 000e16f..7e5b3f5 100644 --- a/build.gradle +++ b/build.gradle @@ -11,11 +11,17 @@ sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { + mavenLocal() + mavenCentral() + jcenter() + google() maven { url "http://repo.maven.apache.org/maven2" } + maven { url "https://oss.sonatype.org/content/repositories/releases/" } + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } ext { - gdxVersion = '1.9.9' + gdxVersion = '1.9.11' } dependencies { @@ -25,7 +31,7 @@ dependencies { testCompile group: 'com.badlogicgames.gdx', name: 'gdx-box2d', version:gdxVersion testCompile group: 'com.badlogicgames.gdx', name: 'gdx-box2d-platform', version:gdxVersion, classifier:'natives-desktop' testCompile group: 'junit', name: 'junit', version:'4.12' - testCompile group: 'com.kotcrab.vis', name: 'vis-ui', version: '1.4.0' + testCompile group: 'com.kotcrab.vis', name: 'vis-ui', version: '1.4.6' } sourceSets { @@ -46,66 +52,3 @@ sourceSets { } } } - -task javadocJar(type: Jar) { - archiveClassifier.set('javadoc') - from javadoc -} - -task sourcesJar(type: Jar) { - archiveClassifier.set('sources') - from sourceSets.main.allSource -} - -artifacts { - archives javadocJar, sourcesJar -} - -signing { - sign configurations.archives -} - -uploadArchives { - repositories { - mavenDeployer { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - - repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } - - snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } - - pom.project { - name 'libGdx In-Game Console' - packaging 'jar' - // optionally artifactId can be defined here - description 'libGdx In-Game Console' - url 'https://www.strongjoshua.net/projects/games/libgdx-ingame-console' - - scm { - connection 'scm:git:git@github.com:StrongJoshua/libgdx-inGameConsole.git' - developerConnection 'scm:git:git@github.com:StrongJoshua/libgdx-inGameConsole.git' - url 'https://github.com/StrongJoshua/libgdx-inGameConsole' - } - - licenses { - license { - name 'The Apache License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - - developers { - developer { - id 'StrongJoshua' - name 'Jan Risse' - email 'strongjoshua@hotmail.com' - } - } - } - } - } -} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 085a1cd..758de96 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cf8e7c5..2d80b69 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Wed Aug 16 11:11:15 EDT 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.3-all.zip diff --git a/gradlew b/gradlew index 91a7e26..cccdd3d 100644 --- a/gradlew +++ b/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -6,20 +6,38 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn ( ) { +warn () { echo "$*" } -die ( ) { +die () { echo echo "$*" echo @@ -30,6 +48,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,31 +59,11 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=true + ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -90,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -114,6 +113,7 @@ fi if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` @@ -154,11 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 8a0b282..f955316 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,10 +46,9 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line diff --git a/src/com/strongjoshua/console/CommandExecutor.java b/src/com/strongjoshua/console/CommandExecutor.java index d02a1b3..5bf21fc 100644 --- a/src/com/strongjoshua/console/CommandExecutor.java +++ b/src/com/strongjoshua/console/CommandExecutor.java @@ -40,7 +40,17 @@ protected void setConsole (Console c) { console = c; } - /** + /** + * Gets called when console becomes visible. Use for things like pausing the game while the console is active. + */ + protected void onShow(){} + + /** + * Gets called when console becomes hidden. Use for things like unpausing and resuming the game. + */ + protected void onHide(){} + + /** * Prints the log to a local file. * * @param path The relative path of the local file to print to. diff --git a/src/com/strongjoshua/console/GUIConsole.java b/src/com/strongjoshua/console/GUIConsole.java index 78af05d..30e5c45 100644 --- a/src/com/strongjoshua/console/GUIConsole.java +++ b/src/com/strongjoshua/console/GUIConsole.java @@ -524,10 +524,13 @@ void refresh () { private void setHidden (boolean h) { hidden = h; if (hidden) { + exec.onHide(); consoleWindow.setTouchable(Touchable.disabled); stage.setKeyboardFocus(null); stage.setScrollFocus(null); + } else { + exec.onShow(); input.setText(""); consoleWindow.setTouchable(Touchable.enabled); if (selected) { diff --git a/test/tests/PauseTest.java b/test/tests/PauseTest.java new file mode 100644 index 0000000..4b4a048 --- /dev/null +++ b/test/tests/PauseTest.java @@ -0,0 +1,80 @@ +package tests; + +import com.badlogic.gdx.ApplicationAdapter; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; +import com.badlogic.gdx.backends.lwjgl.LwjglApplication; +import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.actions.Actions; +import com.badlogic.gdx.scenes.scene2d.ui.Image; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.strongjoshua.console.CommandExecutor; +import com.strongjoshua.console.GUIConsole; + +public class PauseTest extends ApplicationAdapter{ + private Stage stage; + private GUIConsole console; + private Image image; + private boolean pause; + + public static void main (String[] args) { + LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); + new LwjglApplication(new PauseTest(), config); + } + + @Override + public void create(){ + stage = new Stage(); + Gdx.input.setInputProcessor(stage); + + Skin skin = new Skin(Gdx.files.classpath("tests/test_skin/uiskin.json")); + console = new GUIConsole(skin); + console.setCommandExecutor(new MyCommandExecutor()); + console.setSizePercent(40, 50); + console.setPositionPercent(100, 100); + console.setDisplayKeyID(Input.Keys.Z); + + image = new Image(new Texture(Gdx.files.classpath("tests/badlogic" + "" + ".jpg"))); + image.setScale(1.5f); + stage.addActor(image); + } + + @Override public void render () { + Gdx.gl.glClearColor(0, 0, 0, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + + if(image.getActions().size == 0) + image.addAction(Actions.sequence(Actions.fadeOut(1), Actions.fadeIn(1))); + + if(!pause) + stage.act(); + + stage.draw(); + console.draw(); + } + + private class MyCommandExecutor extends CommandExecutor{ + @Override + protected void onShow(){ + pause = true; + } + + @Override + protected void onHide(){ + pause = false; + } + + public void setExecuteHiddenCommands (boolean enabled) { + console.setExecuteHiddenCommands(enabled); + console.log("ExecuteHiddenCommands was set to " + enabled); + } + + public void setDisplayHiddenCommands (boolean enabled) { + console.setDisplayHiddenCommands(enabled); + console.log("DisplayHiddenCommands was set to " + enabled); + } + } +}