diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..535541b --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +/src/ +build/ +*.jar +out/ +.idea/ +*.ipr +*.iml +*.iws +.gradle/ +*.zip diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..3a7f552 --- /dev/null +++ b/build.gradle @@ -0,0 +1,92 @@ +plugins { + id 'java' + id 'application' +} + +mainClassName = 'tk.valoeghese.fc0.client.Main' +sourceCompatibility = JavaVersion.VERSION_1_8 + +group 'tk.valoeghese' +version '0.1.4' + +repositories { + mavenCentral() + + maven { + name = "FabricMC" + url = "https://maven.fabricmc.net" + } +} + +configurations { + enigma +} + +def gameJar = project.file("2fc0f18-${version}.jar") +def mappingsDir = project.file('mappings') + +dependencies { + //implementation files(gameJar) + + // lwjgl + implementation "org.lwjgl:lwjgl:${project.lwjgl_version}" + implementation "org.lwjgl:lwjgl-assimp:${project.lwjgl_version}" + //implementation "org.lwjgl:lwjgl-jawt:${project.lwjgl_version}" + implementation "org.lwjgl:lwjgl-opengl:${project.lwjgl_version}" + implementation "org.lwjgl:lwjgl-glfw:${project.lwjgl_version}" + implementation "org.lwjgl:lwjgl-openal:${project.lwjgl_version}" + implementation "org.lwjgl:lwjgl-stb:${project.lwjgl_version}" + // joml + implementation "org.joml:joml:${project.joml_version}" + // fastutil + implementation "it.unimi.dsi:fastutil:${project.fastutil_version}" + // lwjgl natives + runtimeOnly "org.lwjgl:lwjgl:${project.lwjgl_version}:${project.natives}" + runtimeOnly "org.lwjgl:lwjgl-assimp:${project.lwjgl_version}:${project.natives}" + runtimeOnly "org.lwjgl:lwjgl-opengl:${project.lwjgl_version}:${project.natives}" + runtimeOnly "org.lwjgl:lwjgl-glfw:${project.lwjgl_version}:${project.natives}" + runtimeOnly "org.lwjgl:lwjgl-openal:${project.lwjgl_version}:${project.natives}" + runtimeOnly "org.lwjgl:lwjgl-stb:${project.lwjgl_version}:${project.natives}" + + compileOnly "com.google.code.findbugs:jsr305:3.0.2" + testCompile group: 'junit', name: 'junit', version: '4.12' + + enigma "cuchaz:enigma:$project.enigma_version" +} + +task deobf(type: DeobfuscateTask) { + group = "build setup" + mappings = mappingsDir + inputJar = gameJar + outputJar = file("build/deobf-${gameJar.name}") +} + +task decompile(type: DecompileTask, dependsOn: deobf) { + group = "build setup" + input = deobf.outputJar + output = file('src/main/java') +} + +task extractResources(type: ExtractResourcesTask) { + group = "build setup" + input = gameJar + output = file('src/main/resources') +} + +task enigma() { + doLast { + ant.setLifecycleLogLevel "WARN" + ant.java( + classname: 'cuchaz.enigma.Main', + classpath: configurations.enigma.asPath, + fork: true, + spawn: true + ) { + jvmarg(value: "-Xmx2048m") + arg(value: '-jar') + arg(value: gameJar.getAbsolutePath()) + arg(value: '-mappings') + arg(value: mappingsDir.getAbsolutePath()) + } + } +} diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle new file mode 100644 index 0000000..e2f53db --- /dev/null +++ b/buildSrc/build.gradle @@ -0,0 +1,12 @@ +repositories { + mavenCentral() + maven { + name = "fabric" + url = "https://maven.fabricmc.net" + } +} + +dependencies { + implementation "org.benf:cfr:0.150" + implementation "cuchaz:enigma:$enigma" +} diff --git a/buildSrc/gradle.properties b/buildSrc/gradle.properties new file mode 100644 index 0000000..43005db --- /dev/null +++ b/buildSrc/gradle.properties @@ -0,0 +1 @@ +enigma = 0.16.0+build.175:all diff --git a/buildSrc/src/main/groovy/DecompileTask.groovy b/buildSrc/src/main/groovy/DecompileTask.groovy new file mode 100644 index 0000000..af3b149 --- /dev/null +++ b/buildSrc/src/main/groovy/DecompileTask.groovy @@ -0,0 +1,52 @@ +import org.benf.cfr.reader.api.CfrDriver +import org.benf.cfr.reader.api.OutputSinkFactory +import org.benf.cfr.reader.api.SinkReturns +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +import java.nio.charset.StandardCharsets +import java.nio.file.FileSystem +import java.nio.file.FileSystems +import java.nio.file.Files + +class DecompileTask extends DefaultTask { + @Input + File input + + @Input + File output + + @TaskAction + def run() { + output.mkdirs() + + def driver = new CfrDriver.Builder() + .withOptions(renamedupmembers: 'true') + .withOutputSink(new SinkFactory()) + .build() + driver.analyse([input.getAbsolutePath()]) + } + + private def accept(SinkReturns.Decompiled decompiled) { + def dir = output.toPath().resolve(decompiled.packageName.replace('.', '/')) + Files.createDirectories(dir) + def sourceFile = dir.resolve(decompiled.className + ".java") + + Files.write(sourceFile, decompiled.java.getBytes(StandardCharsets.UTF_8)) + } + + private class SinkFactory implements OutputSinkFactory { + @Override + List getSupportedSinks(SinkType sinkType, Collection available) { + return [SinkClass.DECOMPILED] + } + + @Override + Sink getSink(SinkType sinkType, SinkClass sinkClass) { + return (sinkClass == SinkClass.DECOMPILED && sinkType == SinkType.JAVA) + ? { data -> accept(data as SinkReturns.Decompiled) } + : null + } + } +} diff --git a/buildSrc/src/main/groovy/DeobfuscateTask.groovy b/buildSrc/src/main/groovy/DeobfuscateTask.groovy new file mode 100644 index 0000000..7dbdc19 --- /dev/null +++ b/buildSrc/src/main/groovy/DeobfuscateTask.groovy @@ -0,0 +1,21 @@ +import cuchaz.enigma.command.DeobfuscateCommand +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +class DeobfuscateTask extends DefaultTask { + @Input + File mappings + + @Input + File inputJar + + @Input + File outputJar + + @TaskAction + def run() { + outputJar.parentFile.mkdirs() + new DeobfuscateCommand().run(inputJar.absolutePath, outputJar.absolutePath, mappings.absolutePath) + } +} diff --git a/buildSrc/src/main/groovy/ExtractResourcesTask.groovy b/buildSrc/src/main/groovy/ExtractResourcesTask.groovy new file mode 100644 index 0000000..b64f19c --- /dev/null +++ b/buildSrc/src/main/groovy/ExtractResourcesTask.groovy @@ -0,0 +1,32 @@ +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +import java.nio.file.FileSystems +import java.nio.file.Files + +class ExtractResourcesTask extends DefaultTask { + @Input + File input + + @Input + File output + + @TaskAction + def run() { + def resources = output.toPath() + def fs = FileSystems.newFileSystem(URI.create("jar:" + input.toPath().toUri()), Collections.emptyMap(), null) + try { + for (def root : fs.rootDirectories) { + Files.walk(root).filter({ Files.isRegularFile(it) && !it.toString().endsWith(".class") }).forEach({ + def str = it.toString() + def target = resources.resolve(str.startsWith("/") ? str.substring(1) : str) + Files.createDirectories(target.parent) + Files.copy(it, target) + }) + } + } finally { + fs.close() + } + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..7bb4633 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,6 @@ +lwjgl_version = 3.2.3 +joml_version = 1.9.24 +fastutil_version = 8.3.1 + +natives = natives-windows +enigma_version = 0.16.0+build.175:all diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..b4f4aa2 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Aug 22 17:36:22 EDT 2016 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..9aa616c --- /dev/null +++ b/gradlew @@ -0,0 +1,169 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# 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 ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +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" -a "$nonstop" = "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"` + 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` + 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" + +# 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 "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@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 + +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 + +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 Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_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=%* + +: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/mappings/I.mapping b/mappings/I.mapping new file mode 100644 index 0000000..931d6e6 --- /dev/null +++ b/mappings/I.mapping @@ -0,0 +1,8 @@ +CLASS I + METHOD a evalNoise (DD)D + ARG 0 x + ARG 2 y + METHOD a generateChunk (LE;IIJ)LD; + ARG 1 x + ARG 2 z + ARG 3 seed diff --git a/mappings/tk/valoeghese/fc0/client/Fc0.mapping b/mappings/tk/valoeghese/fc0/client/Fc0.mapping new file mode 100644 index 0000000..ed5ca8e --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/Fc0.mapping @@ -0,0 +1,3 @@ +CLASS tk/valoeghese/fc0/client/a tk/valoeghese/fc0/client/Fc0 + FIELD a world LF; + FIELD a window Lq; diff --git a/mappings/tk/valoeghese/fc0/client/Main.mapping b/mappings/tk/valoeghese/fc0/client/Main.mapping new file mode 100644 index 0000000..eae18af --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/Main.mapping @@ -0,0 +1,3 @@ +CLASS tk/valoeghese/fc0/client/Main + METHOD main ([Ljava/lang/String;)V + ARG 0 args diff --git a/mappings/tk/valoeghese/fc0/client/Window.mapping b/mappings/tk/valoeghese/fc0/client/Window.mapping new file mode 100644 index 0000000..2a42f11 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/Window.mapping @@ -0,0 +1,8 @@ +CLASS q tk/valoeghese/fc0/client/Window + FIELD a ratio F + FIELD a width I + FIELD a pointer J + FIELD b height I + METHOD (II)V + ARG 1 width + ARG 2 height diff --git a/mappings/tk/valoeghese/fc0/client/_EnumSwitches.mapping b/mappings/tk/valoeghese/fc0/client/_EnumSwitches.mapping new file mode 100644 index 0000000..9e7c4b9 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/_EnumSwitches.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/client/c tk/valoeghese/fc0/client/_EnumSwitches diff --git a/mappings/tk/valoeghese/fc0/client/input/Keybind.mapping b/mappings/tk/valoeghese/fc0/client/input/Keybind.mapping new file mode 100644 index 0000000..ea6a81d --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/input/Keybind.mapping @@ -0,0 +1,21 @@ +CLASS d tk/valoeghese/fc0/client/input/Keybind + FIELD a audioDevice J + FIELD a name Ljava/lang/String; + FIELD a terrainShader Lm; + FIELD a down Z + FIELD b audioContext J + FIELD b guiShader Lm; + FIELD b pressed Z + METHOD (Ljava/lang/String;IZ)V + ARG 1 name + ARG 2 defaultKey + ARG 3 mouse + METHOD a initAudio ()V + METHOD a isDown ()Z + METHOD a signum (D)I + ARG 0 n + METHOD a update (I)V + ARG 1 action + METHOD a storeTexture (Ljava/awt/image/BufferedImage;)I + ARG 0 image + METHOD b isPressed ()Z diff --git a/mappings/tk/valoeghese/fc0/client/input/Keybinds.mapping b/mappings/tk/valoeghese/fc0/client/input/Keybinds.mapping new file mode 100644 index 0000000..d25589f --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/input/Keybinds.mapping @@ -0,0 +1,11 @@ +CLASS tk/valoeghese/fc0/client/d tk/valoeghese/fc0/client/input/Keybinds + FIELD a MOVE_FORWARDS Ld; + FIELD b MOVE_BACKWARDS Ld; + FIELD c MOVE_LEFT Ld; + FIELD d MOVE_RIGHT Ld; + FIELD e ESCAPE Ld; + FIELD f JUMP Ld; + FIELD g RUN Ld; + FIELD h DESTROY Ld; + FIELD i INTERACT Ld; + FIELD j RESPAWN Ld; diff --git a/mappings/tk/valoeghese/fc0/client/input/KeyboardInputHandler.mapping b/mappings/tk/valoeghese/fc0/client/input/KeyboardInputHandler.mapping new file mode 100644 index 0000000..ffe548a --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/input/KeyboardInputHandler.mapping @@ -0,0 +1,8 @@ +CLASS e tk/valoeghese/fc0/client/input/KeyboardInputHandler + FIELD a bindings Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; + METHOD invoke (JIIII)V + ARG 1 window + ARG 3 key + ARG 4 scanCode + ARG 5 action + ARG 6 mods diff --git a/mappings/tk/valoeghese/fc0/client/input/MouseInputHandler.mapping b/mappings/tk/valoeghese/fc0/client/input/MouseInputHandler.mapping new file mode 100644 index 0000000..2dec4ca --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/input/MouseInputHandler.mapping @@ -0,0 +1,7 @@ +CLASS f tk/valoeghese/fc0/client/input/MouseInputHandler + FIELD a bindings Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; + METHOD invoke (JIII)V + ARG 1 window + ARG 3 button + ARG 4 action + ARG 5 mods diff --git a/mappings/tk/valoeghese/fc0/client/render/Shader.mapping b/mappings/tk/valoeghese/fc0/client/render/Shader.mapping new file mode 100644 index 0000000..151604e --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/render/Shader.mapping @@ -0,0 +1,9 @@ +CLASS m tk/valoeghese/fc0/client/render/Shader + FIELD a program I + METHOD (Ljava/lang/String;Ljava/lang/String;)V + ARG 1 vertex + ARG 2 fragment + METHOD a enableBlend ()V + METHOD a initWindow (Lq;)V + ARG 0 window + METHOD b apply ()V diff --git a/mappings/tk/valoeghese/fc0/client/render/Textures.mapping b/mappings/tk/valoeghese/fc0/client/render/Textures.mapping new file mode 100644 index 0000000..2a59064 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/client/render/Textures.mapping @@ -0,0 +1,7 @@ +CLASS k tk/valoeghese/fc0/client/render/Textures + FIELD a TILE_ATLAS I + FIELD b VERSION I + FIELD c WATER_OVERLAY I + METHOD a load (Ljava/lang/String;Z)I + ARG 0 location + ARG 1 failSafely diff --git a/mappings/tk/valoeghese/fc0/io/ResourceLoader.mapping b/mappings/tk/valoeghese/fc0/io/ResourceLoader.mapping new file mode 100644 index 0000000..c17943f --- /dev/null +++ b/mappings/tk/valoeghese/fc0/io/ResourceLoader.mapping @@ -0,0 +1,5 @@ +CLASS p tk/valoeghese/fc0/io/ResourceLoader + METHOD a readResource (Ljava/lang/String;)Ljava/lang/String; + ARG 0 location + METHOD a getResource (Ljava/lang/String;)Ljava/net/URL; + ARG 0 location diff --git a/mappings/tk/valoeghese/fc0/math/HitResult_maybe.mapping b/mappings/tk/valoeghese/fc0/math/HitResult_maybe.mapping new file mode 100644 index 0000000..b9c20a0 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/math/HitResult_maybe.mapping @@ -0,0 +1,6 @@ +CLASS A tk/valoeghese/fc0/math/HitResult_maybe + FIELD a pos LC; + FIELD a side Ls; + METHOD (LC;Ls;)V + ARG 1 pos + ARG 2 side diff --git a/mappings/tk/valoeghese/fc0/math/MutableVec3d.mapping b/mappings/tk/valoeghese/fc0/math/MutableVec3d.mapping new file mode 100644 index 0000000..5fe4939 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/math/MutableVec3d.mapping @@ -0,0 +1,19 @@ +CLASS u tk/valoeghese/fc0/math/MutableVec3d + METHOD a setY (D)Lu; + ARG 1 y + METHOD a set (DDD)Lu; + ARG 1 x + ARG 3 y + ARG 5 z + METHOD a set (Lz;)Lu; + ARG 1 other + METHOD b offsetY (D)Lu; + ARG 1 y + METHOD b offset (DDD)Lu; + ARG 1 x + ARG 3 y + ARG 5 z + METHOD c scale (DDD)Lu; + ARG 1 x + ARG 3 y + ARG 5 z diff --git a/mappings/tk/valoeghese/fc0/math/Vec2i.mapping b/mappings/tk/valoeghese/fc0/math/Vec2i.mapping new file mode 100644 index 0000000..c984aec --- /dev/null +++ b/mappings/tk/valoeghese/fc0/math/Vec2i.mapping @@ -0,0 +1,6 @@ +CLASS r tk/valoeghese/fc0/math/Vec2i + FIELD a x I + FIELD b y I + METHOD (II)V + ARG 1 x + ARG 2 y diff --git a/mappings/tk/valoeghese/fc0/math/Vec3d.mapping b/mappings/tk/valoeghese/fc0/math/Vec3d.mapping new file mode 100644 index 0000000..b4b42d4 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/math/Vec3d.mapping @@ -0,0 +1,17 @@ +CLASS z tk/valoeghese/fc0/math/Vec3d + FIELD a x D + FIELD b y D + FIELD c z D + METHOD (DDD)V + ARG 1 x + ARG 3 y + ARG 5 z + METHOD a getX ()D + METHOD a add (DDD)Lz; + ARG 1 x + ARG 3 y + ARG 5 z + METHOD a add (Lz;)Lz; + ARG 1 other + METHOD b getY ()D + METHOD c getZ ()D diff --git a/mappings/tk/valoeghese/fc0/math/Vec3i.mapping b/mappings/tk/valoeghese/fc0/math/Vec3i.mapping new file mode 100644 index 0000000..f104195 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/math/Vec3i.mapping @@ -0,0 +1,11 @@ +CLASS C tk/valoeghese/fc0/math/Vec3i + FIELD a x I + FIELD b y I + FIELD c z I + METHOD (III)V + ARG 1 x + ARG 2 y + ARG 3 z + METHOD (Lz;)V + ARG 1 vec + METHOD a up ()LC; diff --git a/mappings/tk/valoeghese/fc0/math/noise/OffsetOpenSimplexNoise.mapping b/mappings/tk/valoeghese/fc0/math/noise/OffsetOpenSimplexNoise.mapping new file mode 100644 index 0000000..5bede8f --- /dev/null +++ b/mappings/tk/valoeghese/fc0/math/noise/OffsetOpenSimplexNoise.mapping @@ -0,0 +1,5 @@ +CLASS v tk/valoeghese/fc0/math/noise/OffsetOpenSimplexNoise + FIELD a offsetX D + FIELD b offsetY D + METHOD (Ljava/util/Random;)V + ARG 1 random diff --git a/mappings/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.mapping b/mappings/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.mapping new file mode 100644 index 0000000..d283f11 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.mapping @@ -0,0 +1,17 @@ +CLASS w tk/valoeghese/fc0/math/noise/OpenSimplexNoise + FIELD a gradients2D [B + FIELD a perm [S + FIELD b gradients3D [B + FIELD b permGradIndex3D [S + METHOD (J)V + ARG 1 seed + METHOD a fastFloor (D)I + ARG 0 x + METHOD a eval (DD)D + ARG 1 x + ARG 3 y + METHOD a extrapolate (IIDD)D + ARG 1 xsb + ARG 2 ysb + ARG 3 dx + ARG 5 dy diff --git a/mappings/tk/valoeghese/fc0/math/noise/RidgedOpenSimplexNoise.mapping b/mappings/tk/valoeghese/fc0/math/noise/RidgedOpenSimplexNoise.mapping new file mode 100644 index 0000000..f908d57 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/math/noise/RidgedOpenSimplexNoise.mapping @@ -0,0 +1 @@ +CLASS B tk/valoeghese/fc0/math/noise/RidgedOpenSimplexNoise diff --git a/mappings/tk/valoeghese/fc0/tile/Tile.mapping b/mappings/tk/valoeghese/fc0/tile/Tile.mapping new file mode 100644 index 0000000..9aa073d --- /dev/null +++ b/mappings/tk/valoeghese/fc0/tile/Tile.mapping @@ -0,0 +1,6 @@ +CLASS N tk/valoeghese/fc0/tile/Tile + FIELD a id B + FIELD a AIR LN; + FIELD a tiles [LN; + METHOD (IIIFF)V + ARG 1 id diff --git a/mappings/tk/valoeghese/fc0/util/Direction.mapping b/mappings/tk/valoeghese/fc0/util/Direction.mapping new file mode 100644 index 0000000..f39a733 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/util/Direction.mapping @@ -0,0 +1,11 @@ +CLASS s tk/valoeghese/fc0/util/Direction + FIELD a x I + FIELD a _VALUES [Ls; + FIELD b y I + FIELD c z I + METHOD (Ljava/lang/String;IIII)V + ARG 3 x + ARG 4 y + ARG 5 z + METHOD a opposite ()Ls; + METHOD a values ()[Ls; diff --git a/mappings/tk/valoeghese/fc0/util/Function.mapping b/mappings/tk/valoeghese/fc0/util/Function.mapping new file mode 100644 index 0000000..c54a5dc --- /dev/null +++ b/mappings/tk/valoeghese/fc0/util/Function.mapping @@ -0,0 +1 @@ +CLASS y tk/valoeghese/fc0/util/Function diff --git a/mappings/tk/valoeghese/fc0/util/OrderedList.mapping b/mappings/tk/valoeghese/fc0/util/OrderedList.mapping new file mode 100644 index 0000000..416c2d0 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/util/OrderedList.mapping @@ -0,0 +1,10 @@ +CLASS x tk/valoeghese/fc0/util/OrderedList + COMMENT This is supposedly an ordered list, though I'm not sure what's ordered about it... + FIELD a indexer Ly; + METHOD (Ly;)V + ARG 1 indexer + METHOD add (ILjava/lang/Object;)V + ARG 1 index + ARG 2 element + METHOD add (Ljava/lang/Object;)Z + ARG 1 element diff --git a/mappings/tk/valoeghese/fc0/util/_EnumSwitches.mapping b/mappings/tk/valoeghese/fc0/util/_EnumSwitches.mapping new file mode 100644 index 0000000..f2438e0 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/util/_EnumSwitches.mapping @@ -0,0 +1,2 @@ +CLASS t tk/valoeghese/fc0/util/_EnumSwitches + FIELD a _DIRECTION_OPPOSITE [I diff --git a/mappings/tk/valoeghese/fc0/world/Chunk.mapping b/mappings/tk/valoeghese/fc0/world/Chunk.mapping new file mode 100644 index 0000000..365e15d --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/Chunk.mapping @@ -0,0 +1,13 @@ +CLASS D tk/valoeghese/fc0/world/Chunk + FIELD a width I + FIELD a world LE; + FIELD a tiles [B + FIELD b height I + METHOD (LE;II[B)V + ARG 1 world + ARG 2 x + ARG 3 y + METHOD a encode (III)I + ARG 0 x + ARG 1 y + ARG 2 z diff --git a/mappings/tk/valoeghese/fc0/world/ChunkView.mapping b/mappings/tk/valoeghese/fc0/world/ChunkView.mapping new file mode 100644 index 0000000..1888902 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/ChunkView.mapping @@ -0,0 +1,4 @@ +CLASS E tk/valoeghese/fc0/world/ChunkView + METHOD a getChunk (II)LD; + ARG 1 x + ARG 2 z diff --git a/mappings/tk/valoeghese/fc0/world/TileView.mapping b/mappings/tk/valoeghese/fc0/world/TileView.mapping new file mode 100644 index 0000000..1d20ad8 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/TileView.mapping @@ -0,0 +1,15 @@ +CLASS H tk/valoeghese/fc0/world/TileView + METHOD a getTile (III)B + ARG 1 x + ARG 2 y + ARG 3 z + METHOD a setTile (IIIB)V + ARG 1 x + ARG 2 y + ARG 3 z + ARG 4 tile + METHOD a getTile (LC;)B + ARG 1 pos + METHOD a setTile (LC;B)V + ARG 1 pos + ARG 2 tile diff --git a/mappings/tk/valoeghese/fc0/world/World.mapping b/mappings/tk/valoeghese/fc0/world/World.mapping new file mode 100644 index 0000000..6460550 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/World.mapping @@ -0,0 +1,6 @@ +CLASS F tk/valoeghese/fc0/world/World + FIELD a chunks [LD; + FIELD b chunkSize I + METHOD (J)V + ARG 1 seed + METHOD a populate ()V