From 32df01f0eb980934e6cb248ff1de4e76ea5b95e5 Mon Sep 17 00:00:00 2001 From: Allexit Date: Wed, 8 Apr 2015 16:59:01 +0300 Subject: [PATCH] initial commit --- .gitignore | 64 +++++++ README.md | 1 + build.gradle | 74 ++++++++ core/assets/badlogic.jpg | Bin 0 -> 68465 bytes core/build.gradle | 11 ++ core/src/GladiatorBrawler.gwt.xml | 5 + .../saltosion/gladiator/GladiatorBrawler.java | 27 +++ desktop/build.gradle | 46 +++++ .../gladiator/desktop/DesktopLauncher.java | 12 ++ gradle.properties | 3 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 50518 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 164 ++++++++++++++++++ gradlew.bat | 90 ++++++++++ html/build.gradle | 70 ++++++++ .../saltosion/gladiator/GdxDefinition.gwt.xml | 12 ++ .../gladiator/GdxDefinitionSuperdev.gwt.xml | 15 ++ .../gladiator/client/HtmlLauncher.java | 19 ++ html/webapp/WEB-INF/web.xml | 3 + html/webapp/index.html | 32 ++++ html/webapp/refresh.png | Bin 0 -> 2971 bytes html/webapp/soundmanager2-jsmin.js | 110 ++++++++++++ html/webapp/soundmanager2-setup.js | 1 + html/webapp/styles.css | 43 +++++ settings.gradle | 1 + 25 files changed, 809 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 build.gradle create mode 100644 core/assets/badlogic.jpg create mode 100644 core/build.gradle create mode 100644 core/src/GladiatorBrawler.gwt.xml create mode 100644 core/src/com/saltosion/gladiator/GladiatorBrawler.java create mode 100644 desktop/build.gradle create mode 100644 desktop/src/com/saltosion/gladiator/desktop/DesktopLauncher.java create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 html/build.gradle create mode 100644 html/src/com/saltosion/gladiator/GdxDefinition.gwt.xml create mode 100644 html/src/com/saltosion/gladiator/GdxDefinitionSuperdev.gwt.xml create mode 100644 html/src/com/saltosion/gladiator/client/HtmlLauncher.java create mode 100644 html/webapp/WEB-INF/web.xml create mode 100644 html/webapp/index.html create mode 100644 html/webapp/refresh.png create mode 100644 html/webapp/soundmanager2-jsmin.js create mode 100644 html/webapp/soundmanager2-setup.js create mode 100644 html/webapp/styles.css create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47454ee --- /dev/null +++ b/.gitignore @@ -0,0 +1,64 @@ +## Java + +*.class +*.war +*.ear +hs_err_pid* + +## GWT +war/ +html/war/gwt_bree/ +html/gwt-unitCache/ +.apt_generated/ +html/war/WEB-INF/deploy/ +html/war/WEB-INF/classes/ +.gwt/ +gwt-unitCache/ +www-test/ +.gwt-tmp/ + +## Android Studio and Intellij and Android in general +android/libs/armeabi/ +android/libs/armeabi-v7a/ +android/libs/x86/ +android/gen/ +.idea/ +*.ipr +*.iws +*.iml +out/ +com_crashlytics_export_strings.xml + +## Eclipse +.classpath +.project +.metadata +**/bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.externalToolBuilders/ +*.launch + +## NetBeans +**/nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +nbactions.xml +nb-configuration.xml + +## Gradle + +.gradle +gradle-app.setting +build/ + +## OS Specific +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..a287fd2 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +#Gladiator Brawler diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..33db62a --- /dev/null +++ b/build.gradle @@ -0,0 +1,74 @@ +buildscript { + repositories { + mavenCentral() + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } + jcenter() + } + dependencies { + classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6' + } +} + +allprojects { + apply plugin: "eclipse" + apply plugin: "idea" + + version = '1.0' + ext { + appName = 'GladiatorBrawler' + gdxVersion = '1.5.5' + roboVMVersion = '1.0.0' + box2DLightsVersion = '1.3' + ashleyVersion = '1.3.1' + aiVersion = '1.5.0' + } + + repositories { + mavenCentral() + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } + maven { url "https://oss.sonatype.org/content/repositories/releases/" } + } +} + +project(":desktop") { + apply plugin: "java" + + + dependencies { + compile project(":core") + compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" + compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" + compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" + } +} + +project(":html") { + apply plugin: "gwt" + apply plugin: "war" + + + dependencies { + compile project(":core") + compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" + compile "com.badlogicgames.gdx:gdx:$gdxVersion:sources" + compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources" + compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources" + compile "com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources" + compile "com.badlogicgames.ashley:ashley:$ashleyVersion:sources" + } +} + +project(":core") { + apply plugin: "java" + + + dependencies { + compile "com.badlogicgames.gdx:gdx:$gdxVersion" + compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" + compile "com.badlogicgames.ashley:ashley:$ashleyVersion" + } +} + +tasks.eclipse.doLast { + delete ".project" +} \ No newline at end of file diff --git a/core/assets/badlogic.jpg b/core/assets/badlogic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4390da6e0f6d041590c6313d2b4c978abc00a342 GIT binary patch literal 68465 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%0D_mtl(=kJ_v@+V;1Dd59><)1Vxf({Tq^pY-s)84 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 literal 0 HcmV?d00001 diff --git a/core/build.gradle b/core/build.gradle new file mode 100644 index 0000000..03cd1be --- /dev/null +++ b/core/build.gradle @@ -0,0 +1,11 @@ +apply plugin: "java" + +sourceCompatibility = 1.6 +[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' + +sourceSets.main.java.srcDirs = [ "src/" ] + + +eclipse.project { + name = appName + "-core" +} diff --git a/core/src/GladiatorBrawler.gwt.xml b/core/src/GladiatorBrawler.gwt.xml new file mode 100644 index 0000000..dc67452 --- /dev/null +++ b/core/src/GladiatorBrawler.gwt.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/src/com/saltosion/gladiator/GladiatorBrawler.java b/core/src/com/saltosion/gladiator/GladiatorBrawler.java new file mode 100644 index 0000000..828d618 --- /dev/null +++ b/core/src/com/saltosion/gladiator/GladiatorBrawler.java @@ -0,0 +1,27 @@ +package com.saltosion.gladiator; + +import com.badlogic.gdx.ApplicationAdapter; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; + +public class GladiatorBrawler extends ApplicationAdapter { + SpriteBatch batch; + Texture img; + + @Override + public void create () { + batch = new SpriteBatch(); + img = new Texture("badlogic.jpg"); + } + + @Override + public void render () { + Gdx.gl.glClearColor(1, 0, 0, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + batch.begin(); + batch.draw(img, 0, 0); + batch.end(); + } +} diff --git a/desktop/build.gradle b/desktop/build.gradle new file mode 100644 index 0000000..30c643e --- /dev/null +++ b/desktop/build.gradle @@ -0,0 +1,46 @@ +apply plugin: "java" + +sourceCompatibility = 1.6 +sourceSets.main.java.srcDirs = [ "src/" ] + +project.ext.mainClassName = "com.saltosion.gladiator.desktop.DesktopLauncher" +project.ext.assetsDir = new File("../core/assets"); + +task run(dependsOn: classes, type: JavaExec) { + main = project.mainClassName + classpath = sourceSets.main.runtimeClasspath + standardInput = System.in + workingDir = project.assetsDir + ignoreExitValue = true +} + +task dist(type: Jar) { + from files(sourceSets.main.output.classesDir) + from files(sourceSets.main.output.resourcesDir) + from {configurations.compile.collect {zipTree(it)}} + from files(project.assetsDir); + + manifest { + attributes 'Main-Class': project.mainClassName + } +} + +dist.dependsOn classes + +eclipse { + project { + name = appName + "-desktop" + linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/core/assets' + } +} + +task afterEclipseImport(description: "Post processing after project generation", group: "IDE") { + doLast { + def classpath = new XmlParser().parse(file(".classpath")) + new Node(classpath, "classpathentry", [ kind: 'src', path: 'assets' ]); + def writer = new FileWriter(file(".classpath")) + def printer = new XmlNodePrinter(new PrintWriter(writer)) + printer.setPreserveWhitespace(true) + printer.print(classpath) + } +} \ No newline at end of file diff --git a/desktop/src/com/saltosion/gladiator/desktop/DesktopLauncher.java b/desktop/src/com/saltosion/gladiator/desktop/DesktopLauncher.java new file mode 100644 index 0000000..be850b0 --- /dev/null +++ b/desktop/src/com/saltosion/gladiator/desktop/DesktopLauncher.java @@ -0,0 +1,12 @@ +package com.saltosion.gladiator.desktop; + +import com.badlogic.gdx.backends.lwjgl.LwjglApplication; +import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; +import com.saltosion.gladiator.GladiatorBrawler; + +public class DesktopLauncher { + public static void main (String[] arg) { + LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); + new LwjglApplication(new GladiatorBrawler(), config); + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..fa55fd1 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.daemon=true +org.gradle.jvmargs=-Xms128m -Xmx512m +org.gradle.configureondemand=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..b979729db0ad460288cfe16f07072da7b1305e93 GIT binary patch literal 50518 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 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..8e600c9 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sat Sep 21 13:08:26 CEST 2013 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=http\://services.gradle.org/distributions/gradle-2.2-all.zip diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..91a7e26 --- /dev/null +++ b/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=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. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 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=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@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 Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz 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. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +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 + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/html/build.gradle b/html/build.gradle new file mode 100644 index 0000000..0fe2686 --- /dev/null +++ b/html/build.gradle @@ -0,0 +1,70 @@ +apply plugin: "java" +apply plugin: "jetty" + +gwt { + gwtVersion='2.6.0' // Should match the gwt version used for building the gwt backend + maxHeapSize="1G" // Default 256m is not enough for gwt compiler. GWT is HUNGRY + minHeapSize="1G" + + src = files(file("src/")) // Needs to be in front of "modules" below. + modules 'com.saltosion.gladiator.GdxDefinition' + devModules 'com.saltosion.gladiator.GdxDefinitionSuperdev' + project.webAppDirName = 'webapp' + + compiler { + strict = true; + enableClosureCompiler = true; + disableCastChecking = true; + } +} + +task draftRun(type: JettyRunWar) { + dependsOn draftWar + dependsOn.remove('war') + webApp=draftWar.archivePath + daemon=true +} + +task superDev(type: de.richsource.gradle.plugins.gwt.GwtSuperDev) { + dependsOn draftRun + doFirst { + gwt.modules = gwt.devModules + } +} + +task dist(dependsOn: [clean, compileGwt]) { + doLast { + file("build/dist").mkdirs() + copy { + from "build/gwt/out" + into "build/dist" + } + copy { + from "webapp" + into "build/dist" + } + copy { + from "war" + into "build/dist" + } + } +} + +draftWar { + from "war" +} + +task addSource << { + sourceSets.main.compileClasspath += files(project(':core').sourceSets.main.allJava.srcDirs) +} + +tasks.compileGwt.dependsOn(addSource) +tasks.draftCompileGwt.dependsOn(addSource) + +sourceCompatibility = 1.6 +sourceSets.main.java.srcDirs = [ "src/" ] + + +eclipse.project { + name = appName + "-html" +} diff --git a/html/src/com/saltosion/gladiator/GdxDefinition.gwt.xml b/html/src/com/saltosion/gladiator/GdxDefinition.gwt.xml new file mode 100644 index 0000000..ac3c24d --- /dev/null +++ b/html/src/com/saltosion/gladiator/GdxDefinition.gwt.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/html/src/com/saltosion/gladiator/GdxDefinitionSuperdev.gwt.xml b/html/src/com/saltosion/gladiator/GdxDefinitionSuperdev.gwt.xml new file mode 100644 index 0000000..6abc5e0 --- /dev/null +++ b/html/src/com/saltosion/gladiator/GdxDefinitionSuperdev.gwt.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/html/src/com/saltosion/gladiator/client/HtmlLauncher.java b/html/src/com/saltosion/gladiator/client/HtmlLauncher.java new file mode 100644 index 0000000..361441b --- /dev/null +++ b/html/src/com/saltosion/gladiator/client/HtmlLauncher.java @@ -0,0 +1,19 @@ +package com.saltosion.gladiator.client; + +import com.badlogic.gdx.ApplicationListener; +import com.badlogic.gdx.backends.gwt.GwtApplication; +import com.badlogic.gdx.backends.gwt.GwtApplicationConfiguration; +import com.saltosion.gladiator.GladiatorBrawler; + +public class HtmlLauncher extends GwtApplication { + + @Override + public GwtApplicationConfiguration getConfig () { + return new GwtApplicationConfiguration(480, 320); + } + + @Override + public ApplicationListener getApplicationListener () { + return new GladiatorBrawler(); + } +} \ No newline at end of file diff --git a/html/webapp/WEB-INF/web.xml b/html/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..4301df2 --- /dev/null +++ b/html/webapp/WEB-INF/web.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/html/webapp/index.html b/html/webapp/index.html new file mode 100644 index 0000000..2e6c9ce --- /dev/null +++ b/html/webapp/index.html @@ -0,0 +1,32 @@ + + + + GladiatorBrawler + + + + + + + + +
+ + + + + diff --git a/html/webapp/refresh.png b/html/webapp/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..24a48f1cc98e37dcb6fce0939031097d755b32fa GIT binary patch literal 2971 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 R0y+Qy002ovPDHLkV1j|Zhj9P^ literal 0 HcmV?d00001 diff --git a/html/webapp/soundmanager2-jsmin.js b/html/webapp/soundmanager2-jsmin.js new file mode 100644 index 0000000..b6af93d --- /dev/null +++ b/html/webapp/soundmanager2-jsmin.js @@ -0,0 +1,110 @@ +/** @license + + + SoundManager 2: JavaScript Sound for the Web + ---------------------------------------------- + http://schillmania.com/projects/soundmanager2/ + + Copyright (c) 2007, Scott Schiller. All rights reserved. + Code provided under the BSD License: + http://schillmania.com/projects/soundmanager2/license.txt + + V2.97a.20130512 +*/ +(function(h,g){function fa(fa,wa){function ga(b){return c.preferFlash&&H&&!c.ignoreFlash&&c.flash[b]!==g&&c.flash[b]}function s(b){return function(d){var e=this._s;!e||!e._a?(e&&e.id?c._wD(e.id+": Ignoring "+d.type):c._wD(rb+"Ignoring "+d.type),d=null):d=b.call(this,d);return d}}this.setupOptions={url:fa||null,flashVersion:8,debugMode:!0,debugFlash:!1,useConsole:!0,consoleOnly:!0,waitForWindowLoad:!1,bgColor:"#ffffff",useHighPerformance:!1,flashPollingInterval:null,html5PollingInterval:null,flashLoadTimeout:1E3, +wmode:null,allowScriptAccess:"always",useFlashBlock:!1,useHTML5Audio:!0,html5Test:/^(probably|maybe)$/i,preferFlash:!0,noSWFCache:!1,idPrefix:"sound"};this.defaultOptions={autoLoad:!1,autoPlay:!1,from:null,loops:1,onid3:null,onload:null,whileloading:null,onplay:null,onpause:null,onresume:null,whileplaying:null,onposition:null,onstop:null,onfailure:null,onfinish:null,multiShot:!0,multiShotEvents:!1,position:null,pan:0,stream:!0,to:null,type:null,usePolicyFile:!1,volume:100};this.flash9Options={isMovieStar:null, +usePeakData:!1,useWaveformData:!1,useEQData:!1,onbufferchange:null,ondataerror:null};this.movieStarOptions={bufferTime:3,serverURL:null,onconnect:null,duration:null};this.audioFormats={mp3:{type:['audio/mpeg; codecs\x3d"mp3"',"audio/mpeg","audio/mp3","audio/MPA","audio/mpa-robust"],required:!0},mp4:{related:["aac","m4a","m4b"],type:['audio/mp4; codecs\x3d"mp4a.40.2"',"audio/aac","audio/x-m4a","audio/MP4A-LATM","audio/mpeg4-generic"],required:!1},ogg:{type:["audio/ogg; codecs\x3dvorbis"],required:!1}, +opus:{type:["audio/ogg; codecs\x3dopus","audio/opus"],required:!1},wav:{type:['audio/wav; codecs\x3d"1"',"audio/wav","audio/wave","audio/x-wav"],required:!1}};this.movieID="sm2-container";this.id=wa||"sm2movie";this.debugID="soundmanager-debug";this.debugURLParam=/([#?&])debug=1/i;this.versionNumber="V2.97a.20130512";this.altURL=this.movieURL=this.version=null;this.enabled=this.swfLoaded=!1;this.oMC=null;this.sounds={};this.soundIDs=[];this.didFlashBlock=this.muted=!1;this.filePattern=null;this.filePatterns= +{flash8:/\.mp3(\?.*)?$/i,flash9:/\.mp3(\?.*)?$/i};this.features={buffering:!1,peakData:!1,waveformData:!1,eqData:!1,movieStar:!1};this.sandbox={type:null,types:{remote:"remote (domain-based) rules",localWithFile:"local with file access (no internet access)",localWithNetwork:"local with network (internet access only, no local access)",localTrusted:"local, trusted (local+internet access)"},description:null,noRemote:null,noLocal:null};this.html5={usingFlash:null};this.flash={};this.ignoreFlash=this.html5Only= +!1;var Ua,c=this,Va=null,k=null,rb="HTML5::",A,t=navigator.userAgent,U=h.location.href.toString(),m=document,xa,Wa,ya,n,F=[],za=!0,C,V=!1,W=!1,q=!1,y=!1,ha=!1,p,sb=0,X,B,Aa,O,Ba,M,P,Q,Xa,Ca,ia,I,ja,Da,R,Ea,Y,ka,la,S,Ya,Fa,Za=["log","info","warn","error"],$a,Ga,ab,Z=null,Ha=null,r,Ia,T,bb,ma,na,J,v,$=!1,Ja=!1,cb,db,eb,oa=0,aa=null,pa,N=[],qa,u=null,fb,ra,ba,K,sa,Ka,gb,w,hb=Array.prototype.slice,E=!1,La,H,Ma,ib,G,jb,Na,ta,kb=0,ca=t.match(/(ipad|iphone|ipod)/i),lb=t.match(/android/i),L=t.match(/msie/i), +tb=t.match(/webkit/i),ua=t.match(/safari/i)&&!t.match(/chrome/i),Oa=t.match(/opera/i),ub=t.match(/firefox/i),Pa=t.match(/(mobile|pre\/|xoom)/i)||ca||lb,Qa=!U.match(/usehtml5audio/i)&&!U.match(/sm2\-ignorebadua/i)&&ua&&!t.match(/silk/i)&&t.match(/OS X 10_6_([3-7])/i),da=h.console!==g&&console.log!==g,Ra=m.hasFocus!==g?m.hasFocus():null,va=ua&&(m.hasFocus===g||!m.hasFocus()),mb=!va,nb=/(mp3|mp4|mpa|m4a|m4b)/i,ea=m.location?m.location.protocol.match(/http/i):null,ob=!ea?"http://":"",pb=/^\s*audio\/(?:x-)?(?:mpeg4|aac|flv|mov|mp4||m4v|m4a|m4b|mp4v|3gp|3g2)\s*(?:$|;)/i, +qb="mpeg4 aac flv mov mp4 m4v f4v m4a m4b mp4v 3gp 3g2".split(" "),vb=RegExp("\\.("+qb.join("|")+")(\\?.*)?$","i");this.mimePattern=/^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i;this.useAltURL=!ea;var Sa;try{Sa=Audio!==g&&(Oa&&opera!==g&&10>opera.version()?new Audio(null):new Audio).canPlayType!==g}catch(wb){Sa=!1}this.hasHTML5=Sa;this.setup=function(b){var d=!c.url;b!==g&&(q&&u&&c.ok()&&(b.flashVersion!==g||b.url!==g||b.html5Test!==g))&&J(r("setupLate"));Aa(b);b&&(d&&(Y&&b.url!==g)&&c.beginDelayedInit(), +!Y&&(b.url!==g&&"complete"===m.readyState)&&setTimeout(R,1));return c};this.supported=this.ok=function(){return u?q&&!y:c.useHTML5Audio&&c.hasHTML5};this.getMovie=function(c){return A(c)||m[c]||h[c]};this.createSound=function(b,d){function e(){f=ma(f);c.sounds[f.id]=new Ua(f);c.soundIDs.push(f.id);return c.sounds[f.id]}var a,f;a=null;a="soundManager.createSound(): "+r(!q?"notReady":"notOK");if(!q||!c.ok())return J(a),!1;d!==g&&(b={id:b,url:d});f=B(b);f.url=pa(f.url);void 0===f.id&&(f.id=c.setupOptions.idPrefix+ +kb++);f.id.toString().charAt(0).match(/^[0-9]$/)&&c._wD("soundManager.createSound(): "+r("badID",f.id),2);c._wD("soundManager.createSound(): "+f.id+(f.url?" ("+f.url+")":""),1);if(v(f.id,!0))return c._wD("soundManager.createSound(): "+f.id+" exists",1),c.sounds[f.id];if(ra(f))a=e(),c._wD(f.id+": Using HTML5"),a._setup_html5(f);else{if(c.html5Only)return c._wD(f.id+": No HTML5 support for this sound, and no Flash. Exiting."),e();if(c.html5.usingFlash&&f.url&&f.url.match(/data\:/i))return c._wD(f.id+ +": data: URIs not supported via Flash. Exiting."),e();8a.instanceCount?(m(),e=a._setup_html5(),a.setPosition(a._iO.position),e.play()):(c._wD(a.id+": Cloning Audio() for instance #"+a.instanceCount+"..."),l=new Audio(a._iO.url),z=function(){w.remove(l,"onended",z);a._onfinish(a);sa(l);l=null},h=function(){w.remove(l,"canplay",h);try{l.currentTime=a._iO.position/1E3}catch(c){J(a.id+": multiShot play() failed to apply position of "+a._iO.position/1E3)}l.play()},w.add(l,"ended",z),a._iO.position? +w.add(l,"canplay",h):l.play()):(x=k._start(a.id,a._iO.loops||1,9===n?a.position:a.position/1E3,a._iO.multiShot||!1),9===n&&!x&&(c._wD(e+"No sound hardware, or 32-sound ceiling hit",2),a._iO.onplayerror&&a._iO.onplayerror.apply(a)))}return a};this.stop=function(b){var d=a._iO;1===a.playState&&(c._wD(a.id+": stop()"),a._onbufferchange(0),a._resetOnPosition(0),a.paused=!1,a.isHTML5||(a.playState=0),Ta(),d.to&&a.clearOnPosition(d.to),a.isHTML5?a._a&&(b=a.position,a.setPosition(0),a.position=b,a._a.pause(), +a.playState=0,a._onTimer(),l()):(k._stop(a.id,b),d.serverURL&&a.unload()),a.instanceCount=0,a._iO={},d.onstop&&d.onstop.apply(a));return a};this.setAutoPlay=function(b){c._wD(a.id+": Autoplay turned "+(b?"on":"off"));a._iO.autoPlay=b;a.isHTML5||(k._setAutoPlay(a.id,b),b&&(!a.instanceCount&&1===a.readyState)&&(a.instanceCount++,c._wD(a.id+": Incremented instance count to "+a.instanceCount)))};this.getAutoPlay=function(){return a._iO.autoPlay};this.setPosition=function(b){b===g&&(b=0);var d=a.isHTML5? +Math.max(b,0):Math.min(a.duration||a._iO.duration,Math.max(b,0));a.position=d;b=a.position/1E3;a._resetOnPosition(a.position);a._iO.position=d;if(a.isHTML5){if(a._a){if(a._html5_canplay){if(a._a.currentTime!==b){c._wD(a.id+": setPosition("+b+")");try{a._a.currentTime=b,(0===a.playState||a.paused)&&a._a.pause()}catch(e){c._wD(a.id+": setPosition("+b+") failed: "+e.message,2)}}}else if(b)return c._wD(a.id+": setPosition("+b+"): Cannot seek yet, sound not ready",2),a;a.paused&&a._onTimer(!0)}}else b= +9===n?a.position:b,a.readyState&&2!==a.readyState&&k._setPosition(a.id,b,a.paused||!a.playState,a._iO.multiShot);return a};this.pause=function(b){if(a.paused||0===a.playState&&1!==a.readyState)return a;c._wD(a.id+": pause()");a.paused=!0;a.isHTML5?(a._setup_html5().pause(),l()):(b||b===g)&&k._pause(a.id,a._iO.multiShot);a._iO.onpause&&a._iO.onpause.apply(a);return a};this.resume=function(){var b=a._iO;if(!a.paused)return a;c._wD(a.id+": resume()");a.paused=!1;a.playState=1;a.isHTML5?(a._setup_html5().play(), +m()):(b.isMovieStar&&!b.serverURL&&a.setPosition(a.position),k._pause(a.id,b.multiShot));!s&&b.onplay?(b.onplay.apply(a),s=!0):b.onresume&&b.onresume.apply(a);return a};this.togglePause=function(){c._wD(a.id+": togglePause()");if(0===a.playState)return a.play({position:9===n&&!a.isHTML5?a.position:a.position/1E3}),a;a.paused?a.resume():a.pause();return a};this.setPan=function(b,c){b===g&&(b=0);c===g&&(c=!1);a.isHTML5||k._setPan(a.id,b);a._iO.pan=b;c||(a.pan=b,a.options.pan=b);return a};this.setVolume= +function(b,d){b===g&&(b=100);d===g&&(d=!1);a.isHTML5?a._a&&(a._a.volume=Math.max(0,Math.min(1,b/100))):k._setVolume(a.id,c.muted&&!a.muted||a.muted?0:b);a._iO.volume=b;d||(a.volume=b,a.options.volume=b);return a};this.mute=function(){a.muted=!0;a.isHTML5?a._a&&(a._a.muted=!0):k._setVolume(a.id,0);return a};this.unmute=function(){a.muted=!1;var b=a._iO.volume!==g;a.isHTML5?a._a&&(a._a.muted=!1):k._setVolume(a.id,b?a._iO.volume:a.options.volume);return a};this.toggleMute=function(){return a.muted?a.unmute(): +a.mute()};this.onposition=this.onPosition=function(b,c,d){D.push({position:parseInt(b,10),method:c,scope:d!==g?d:a,fired:!1});return a};this.clearOnPosition=function(a,b){var c;a=parseInt(a,10);if(isNaN(a))return!1;for(c=0;c=b)return!1;for(b-=1;0<=b;b--)c=D[b],!c.fired&&a.position>=c.position&&(c.fired=!0,t++,c.method.apply(c.scope,[c.position])); +return!0};this._resetOnPosition=function(a){var b,c;b=D.length;if(!b)return!1;for(b-=1;0<=b;b--)c=D[b],c.fired&&a<=c.position&&(c.fired=!1,t--);return!0};y=function(){var b=a._iO,d=b.from,e=b.to,f,g;g=function(){c._wD(a.id+': "To" time of '+e+" reached.");a.clearOnPosition(e,g);a.stop()};f=function(){c._wD(a.id+': Playing "from" '+d);if(null!==e&&!isNaN(e))a.onPosition(e,g)};null!==d&&!isNaN(d)&&(b.position=d,b.multiShot=!1,f());return b};q=function(){var b,c=a._iO.onposition;if(c)for(b in c)if(c.hasOwnProperty(b))a.onPosition(parseInt(b, +10),c[b])};Ta=function(){var b,c=a._iO.onposition;if(c)for(b in c)c.hasOwnProperty(b)&&a.clearOnPosition(parseInt(b,10))};m=function(){a.isHTML5&&cb(a)};l=function(){a.isHTML5&&db(a)};f=function(b){b||(D=[],t=0);s=!1;a._hasTimer=null;a._a=null;a._html5_canplay=!1;a.bytesLoaded=null;a.bytesTotal=null;a.duration=a._iO&&a._iO.duration?a._iO.duration:null;a.durationEstimate=null;a.buffered=[];a.eqData=[];a.eqData.left=[];a.eqData.right=[];a.failures=0;a.isBuffering=!1;a.instanceOptions={};a.instanceCount= +0;a.loaded=!1;a.metadata={};a.readyState=0;a.muted=!1;a.paused=!1;a.peakData={left:0,right:0};a.waveformData={left:[],right:[]};a.playState=0;a.position=null;a.id3={}};f();this._onTimer=function(b){var c,f=!1,g={};if(a._hasTimer||b){if(a._a&&(b||(0opera.version()?new Audio(null):new Audio,c=a._a,c._called_load=!1,E&&(Va=c);a.isHTML5=!0;a._a=c;c._s=a;h();a._apply_loop(c,b.loops);b.autoLoad||b.autoPlay?a.load():(c.autobuffer=!1,c.preload="auto");return c};h=function(){if(a._a._added_events)return!1;var b;a._a._added_events=!0;for(b in G)G.hasOwnProperty(b)&&a._a&&a._a.addEventListener(b,G[b],!1);return!0};z=function(){var b;c._wD(a.id+": Removing event listeners"); +a._a._added_events=!1;for(b in G)G.hasOwnProperty(b)&&a._a&&a._a.removeEventListener(b,G[b],!1)};this._onload=function(b){var d=!!b||!a.isHTML5&&8===n&&a.duration;b=a.id+": ";c._wD(b+(d?"onload()":"Failed to load / invalid sound?"+(!a.duration?" Zero-length duration reported.":" -")+" ("+a.url+")"),d?1:2);!d&&!a.isHTML5&&(!0===c.sandbox.noRemote&&c._wD(b+r("noNet"),1),!0===c.sandbox.noLocal&&c._wD(b+r("noLocal"),1));a.loaded=d;a.readyState=d?3:2;a._onbufferchange(0);a._iO.onload&&ta(a,function(){a._iO.onload.apply(a, +[d])});return!0};this._onbufferchange=function(b){if(0===a.playState||b&&a.isBuffering||!b&&!a.isBuffering)return!1;a.isBuffering=1===b;a._iO.onbufferchange&&(c._wD(a.id+": Buffer state change: "+b),a._iO.onbufferchange.apply(a));return!0};this._onsuspend=function(){a._iO.onsuspend&&(c._wD(a.id+": Playback suspended"),a._iO.onsuspend.apply(a));return!0};this._onfailure=function(b,d,e){a.failures++;c._wD(a.id+": Failures \x3d "+a.failures);if(a._iO.onfailure&&1===a.failures)a._iO.onfailure(a,b,d,e); +else c._wD(a.id+": Ignoring failure")};this._onfinish=function(){var b=a._iO.onfinish;a._onbufferchange(0);a._resetOnPosition(0);if(a.instanceCount&&(a.instanceCount--,a.instanceCount||(Ta(),a.playState=0,a.paused=!1,a.instanceCount=0,a.instanceOptions={},a._iO={},l(),a.isHTML5&&(a.position=0)),(!a.instanceCount||a._iO.multiShotEvents)&&b))c._wD(a.id+": onfinish()"),ta(a,function(){b.apply(a)})};this._whileloading=function(b,c,d,e){var f=a._iO;a.bytesLoaded=b;a.bytesTotal=c;a.duration=Math.floor(d); +a.bufferLength=e;a.durationEstimate=!a.isHTML5&&!f.isMovieStar?f.duration?a.duration>f.duration?a.duration:f.duration:parseInt(a.bytesTotal/a.bytesLoaded*a.duration,10):a.duration;a.isHTML5||(a.buffered=[{start:0,end:a.duration}]);(3!==a.readyState||a.isHTML5)&&f.whileloading&&f.whileloading.apply(a)};this._whileplaying=function(b,c,d,e,f){var l=a._iO;if(isNaN(b)||null===b)return!1;a.position=Math.max(0,b);a._processOnPosition();!a.isHTML5&&8opera.version()?new Audio(null):new Audio:null,e,a,f={},h;h=c.audioFormats;for(e in h)if(h.hasOwnProperty(e)&&(a="audio/"+e,f[e]=b(h[e].type),f[a]=f[e],e.match(nb)?(c.flash[e]=!0,c.flash[a]=!0):(c.flash[e]=!1,c.flash[a]=!1),h[e]&&h[e].related))for(a=h[e].related.length- +1;0<=a;a--)f["audio/"+h[e].related[a]]=f[e],c.html5[h[e].related[a]]=f[e],c.flash[h[e].related[a]]=f[e];f.canPlayType=d?b:null;c.html5=B(c.html5,f);c.html5.usingFlash=fb();u=c.html5.usingFlash;return!0};I={notReady:"Unavailable - wait until onready() has fired.",notOK:"Audio support is not available.",domError:"soundManagerexception caught while appending SWF to DOM.",spcWmode:"Removing wmode, preventing known SWF loading issue(s)",swf404:"soundManager: Verify that %s is a valid path.",tryDebug:"Try soundManager.debugFlash \x3d true for more security details (output goes to SWF.)", +checkSWF:"See SWF output for more debug info.",localFail:"soundManager: Non-HTTP page ("+m.location.protocol+" URL?) Review Flash player security settings for this special case:\nhttp://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html\nMay need to add/allow path, eg. c:/sm2/ or /users/me/sm2/",waitFocus:"soundManager: Special case: Waiting for SWF to load with window focus...",waitForever:"soundManager: Waiting indefinitely for Flash (will recover if unblocked)...", +waitSWF:"soundManager: Waiting for 100% SWF load...",needFunction:"soundManager: Function object expected for %s",badID:'Sound ID "%s" should be a string, starting with a non-numeric character',currentObj:"soundManager: _debug(): Current sound objects",waitOnload:"soundManager: Waiting for window.onload()",docLoaded:"soundManager: Document already loaded",onload:"soundManager: initComplete(): calling soundManager.onload()",onloadOK:"soundManager.onload() complete",didInit:"soundManager: init(): Already called?", +secNote:"Flash security note: Network/internet URLs will not load due to security restrictions. Access can be configured via Flash Player Global Security Settings Page: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html",badRemove:"soundManager: Failed to remove Flash node.",shutdown:"soundManager.disable(): Shutting down",queue:"soundManager: Queueing %s handler",smError:"SMSound.load(): Exception: JS-Flash communication failed, or JS error.",fbTimeout:"No flash response, applying .swf_timedout CSS...", +fbLoaded:"Flash loaded",fbHandler:"soundManager: flashBlockHandler()",manURL:"SMSound.load(): Using manually-assigned URL",onURL:"soundManager.load(): current URL already assigned.",badFV:'soundManager.flashVersion must be 8 or 9. "%s" is invalid. Reverting to %s.',as2loop:"Note: Setting stream:false so looping can work (flash 8 limitation)",noNSLoop:"Note: Looping not implemented for MovieStar formats",needfl9:"Note: Switching to flash 9, required for MP4 formats.",mfTimeout:"Setting flashLoadTimeout \x3d 0 (infinite) for off-screen, mobile flash case", +needFlash:"soundManager: Fatal error: Flash is needed to play some required formats, but is not available.",gotFocus:"soundManager: Got window focus.",policy:"Enabling usePolicyFile for data access",setup:"soundManager.setup(): allowed parameters: %s",setupError:'soundManager.setup(): "%s" cannot be assigned with this method.',setupUndef:'soundManager.setup(): Could not find option "%s"',setupLate:"soundManager.setup(): url, flashVersion and html5Test property changes will not take effect until reboot().", +noURL:"soundManager: Flash URL required. Call soundManager.setup({url:...}) to get started.",sm2Loaded:"SoundManager 2: Ready.",reset:"soundManager.reset(): Removing event callbacks",mobileUA:"Mobile UA detected, preferring HTML5 by default.",globalHTML5:"Using singleton HTML5 Audio() pattern for this device."};r=function(){var b=hb.call(arguments),c=b.shift(),c=I&&I[c]?I[c]:"",e,a;if(c&&b&&b.length){e=0;for(a=b.length;en)&&(c._wD(r("needfl9")),c.flashVersion=n=9);c.version=c.versionNumber+(c.html5Only?" (HTML5-only mode)": +9===n?" (AS3/Flash 9)":" (AS2/Flash 8)");8b&&(d= +!0));setTimeout(function(){b=c.getMoviePercent();if(d)return $=!1,c._wD(r("waitSWF")),h.setTimeout(Q,1),!1;q||(c._wD("soundManager: No Flash response within expected time. Likely causes: "+(0===b?"SWF load failed, ":"")+"Flash blocked or JS-Flash security error."+(c.debugFlash?" "+r("checkSWF"):""),2),!ea&&b&&(p("localFail",2),c.debugFlash||p("tryDebug",2)),0===b&&c._wD(r("swf404",c.url),1),C("flashtojs",!1,": Timed out"+ea?" (Check flash security or flash blockers)":" (No plugin/missing SWF?)")); +!q&&mb&&(null===b?c.useFlashBlock||0===c.flashLoadTimeout?(c.useFlashBlock&&Ia(),p("waitForever")):!c.useFlashBlock&&qa?h.setTimeout(function(){J("soundManager: useFlashBlock is false, 100% HTML5 mode is possible. Rebooting with preferFlash: false...");c.setup({preferFlash:!1}).reboot();c.didFlashBlock=!0;c.beginDelayedInit()},1):(p("waitForever"),M({type:"ontimeout",ignoreInit:!0})):0===c.flashLoadTimeout?p("waitForever"):Ga(!0))},c.flashLoadTimeout)};ia=function(){if(Ra||!va)return w.remove(h,"focus", +ia),!0;Ra=mb=!0;p("gotFocus");$=!1;Q();w.remove(h,"focus",ia);return!0};Na=function(){N.length&&(c._wD("SoundManager 2: "+N.join(" "),1),N=[])};jb=function(){Na();var b,d=[];if(c.useHTML5Audio&&c.hasHTML5){for(b in c.audioFormats)c.audioFormats.hasOwnProperty(b)&&d.push(b+" \x3d "+c.html5[b]+(!c.html5[b]&&u&&c.flash[b]?" (using flash)":c.preferFlash&&c.flash[b]&&u?" (preferring flash)":!c.html5[b]?" ("+(c.audioFormats[b].required?"required, ":"")+"and no flash support)":""));c._wD("SoundManager 2 HTML5 support: "+ +d.join(", "),1)}};X=function(b){if(q)return!1;if(c.html5Only)return p("sm2Loaded"),q=!0,P(),C("onload",!0),!0;var d=!0,e;if(!c.useFlashBlock||!c.flashLoadTimeout||c.getMoviePercent())q=!0,y&&(e={type:!H&&u?"NO_FLASH":"INIT_TIMEOUT"});c._wD("SoundManager 2 "+(y?"failed to load":"loaded")+" ("+(y?"Flash security/load error":"OK")+")",y?2:1);y||b?(c.useFlashBlock&&c.oMC&&(c.oMC.className=T()+" "+(null===c.getMoviePercent()?"swf_timedout":"swf_error")),M({type:"ontimeout",error:e,ignoreInit:!0}),C("onload", +!1),S(e),d=!1):C("onload",!0);y||(c.waitForWindowLoad&&!ha?(p("waitOnload"),w.add(h,"load",P)):(c.waitForWindowLoad&&ha&&p("docLoaded"),P()));return d};Wa=function(){var b,d=c.setupOptions;for(b in d)d.hasOwnProperty(b)&&(c[b]===g?c[b]=d[b]:c[b]!==d[b]&&(c.setupOptions[b]=c[b]))};ya=function(){if(q)return p("didInit"),!1;if(c.html5Only)return q||(w.remove(h,"load",c.beginDelayedInit),c.enabled=!0,X()),!0;ja();try{k._externalInterfaceTest(!1),Ya(!0,c.flashPollingInterval||(c.useHighPerformance?10: +50)),c.debugMode||k._disableDebug(),c.enabled=!0,C("jstoflash",!0),c.html5Only||w.add(h,"unload",xa)}catch(b){return c._wD("js/flash exception: "+b.toString()),C("jstoflash",!1),S({type:"JS_TO_FLASH_EXCEPTION",fatal:!0}),Ga(!0),X(),!1}X();w.remove(h,"load",c.beginDelayedInit);return!0};R=function(){if(Y)return!1;Y=!0;Wa();Fa();var b=null,b=null,d=U.toLowerCase();-1!==d.indexOf("sm2-usehtml5audio\x3d")&&(b="1"===d.charAt(d.indexOf("sm2-usehtml5audio\x3d")+18),da&&console.log((b?"Enabling ":"Disabling ")+ +"useHTML5Audio via URL parameter"),c.setup({useHTML5Audio:b}));-1!==d.indexOf("sm2-preferflash\x3d")&&(b="1"===d.charAt(d.indexOf("sm2-preferflash\x3d")+16),da&&console.log((b?"Enabling ":"Disabling ")+"preferFlash via URL parameter"),c.setup({preferFlash:b}));!H&&c.hasHTML5&&(c._wD("SoundManager: No Flash detected"+(!c.useHTML5Audio?", enabling HTML5.":". Trying HTML5-only mode."),1),c.setup({useHTML5Audio:!0,preferFlash:!1}));gb();!H&&u&&(N.push(I.needFlash),c.setup({flashLoadTimeout:1}));m.removeEventListener&& +m.removeEventListener("DOMContentLoaded",R,!1);ja();return!0};Ka=function(){"complete"===m.readyState&&(R(),m.detachEvent("onreadystatechange",Ka));return!0};Ea=function(){ha=!0;w.remove(h,"load",Ea)};Da=function(){if(Pa&&((!c.setupOptions.useHTML5Audio||c.setupOptions.preferFlash)&&N.push(I.mobileUA),c.setupOptions.useHTML5Audio=!0,c.setupOptions.preferFlash=!1,ca||lb&&!t.match(/android\s2\.3/i)))N.push(I.globalHTML5),ca&&(c.ignoreFlash=!0),E=!0};Da();Ma();w.add(h,"focus",ia);w.add(h,"load",Q);w.add(h, +"load",Ea);m.addEventListener?m.addEventListener("DOMContentLoaded",R,!1):m.attachEvent?m.attachEvent("onreadystatechange",Ka):(C("onload",!1),S({type:"NO_DOM2_EVENTS",fatal:!0}))}var wa=null;if(void 0===h.SM2_DEFER||!SM2_DEFER)wa=new fa;h.SoundManager=fa;h.soundManager=wa})(window); \ No newline at end of file diff --git a/html/webapp/soundmanager2-setup.js b/html/webapp/soundmanager2-setup.js new file mode 100644 index 0000000..4d0ac66 --- /dev/null +++ b/html/webapp/soundmanager2-setup.js @@ -0,0 +1 @@ +window.SM2_DEFER = true; \ No newline at end of file diff --git a/html/webapp/styles.css b/html/webapp/styles.css new file mode 100644 index 0000000..0abbdaa --- /dev/null +++ b/html/webapp/styles.css @@ -0,0 +1,43 @@ +canvas { + cursor: default; + outline: none; +} + +body { + background-color: #222222; +} + +.superdev { + color: rgb(37,37,37); + text-shadow: 0px 1px 1px rgba(250,250,250,0.1); + font-size: 50pt; + display: block; + position: relative; + text-decoration: none; + background-color: rgb(83,87,93); + box-shadow: 0px 3px 0px 0px rgb(34,34,34), + 0px 7px 10px 0px rgb(17,17,17), + inset 0px 1px 1px 0px rgba(250, 250, 250, .2), + inset 0px -12px 35px 0px rgba(0, 0, 0, .5); + width: 70px; + height: 70px; + border: 0; + border-radius: 35px; + text-align: center; + line-height: 68px; +} + +.superdev:active { + box-shadow: 0px 0px 0px 0px rgb(34,34,34), + 0px 3px 7px 0px rgb(17,17,17), + inset 0px 1px 1px 0px rgba(250, 250, 250, .2), + inset 0px -10px 35px 5px rgba(0, 0, 0, .5); + background-color: rgb(83,87,93); + top: 3px; + color: #fff; + text-shadow: 0px 0px 3px rgb(250,250,250); +} + +.superdev:hover { + background-color: rgb(100,100,100); +} diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..7c74fc5 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include 'desktop', 'html', 'core' \ No newline at end of file