From f68217d269d32ed694c72f2dfcc6e5bb506a1855 Mon Sep 17 00:00:00 2001 From: Juuxel <6596629+Juuxel@users.noreply.github.com> Date: Sun, 6 Sep 2020 16:31:49 +0300 Subject: [PATCH] 0.2.3 --- build.gradle | 21 +- buildSrc/build.gradle | 1 + buildSrc/gradle.properties | 1 + buildSrc/src/main/groovy/CfrDecompiler.groovy | 69 + buildSrc/src/main/groovy/DecompileTask.groovy | 54 +- buildSrc/src/main/groovy/Decompiler.groovy | 10 + .../src/main/groovy/ProcyonDecompiler.groovy | 141 ++ bytecode_tweaks/0.2.3.json | 10 + intermediary/0.2.3.tiny | 993 +++++++++ mappings/tk/valoeghese/fc0/Game.mapping | 6 + .../{entity/Entity.mapping => Player.mapping} | 2 +- .../client/{Fc0.mapping => Client2fc.mapping} | 9 +- .../{Player.mapping => ClientPlayer.mapping} | 2 +- .../fc0/io/ThreadedSodChunkStorage.mapping | 11 - mappings/tk/valoeghese/fc0/math/Maths.mapping | 4 + .../fc0/math/noise/OpenSimplexNoise.mapping | 11 + .../fc0/tile/RandomTextureTile.mapping | 7 + mappings/tk/valoeghese/fc0/tile/Tile.mapping | 21 +- .../tk/valoeghese/fc0/tile/TorchTile.mapping | 1 + .../fc0/world/ChunkGenerator.mapping | 3 - .../tk/valoeghese/fc0/world/World.mapping | 3 +- .../world/ecozone/ColdWoodlandEcozone.mapping | 1 + .../fc0/world/ecozone/DesertEcozone.mapping | 1 + .../fc0/world/{ => ecozone}/Ecozone.mapping | 7 +- .../ecozone/TemperateGrasslandEcozone.mapping | 1 + .../TemperateRainforestEcozone.mapping | 1 + .../ecozone/TemperateWoodlandEcozone.mapping | 1 + .../ecozone/TropicalGrasslandEcozone.mapping | 1 + .../ecozone/TropicalRainforestEcozone.mapping | 1 + .../fc0/world/ecozone/TundraEcozone.mapping | 1 + .../generator/TreeGeneratorConfig.mapping | 3 - matches/0.2.2-0.2.3.match | 1893 +++++++++++++++++ .../fc0/client/gui/screen/HudScreen.patch | 9 + .../client/render/world/ChunkRenderer.patch | 8 - .../fc0/io/ThreadedSodChunkStorage.patch | 6 +- .../fc0/math/noise/OpenSimplexNoise.patch | 757 +++++-- patches/tk/valoeghese/fc0/world/Chunk.patch | 16 + patches/tk/valoeghese/fc0/world/World.patch | 108 +- patches/tk/valoeghese/sod/BinaryData.patch | 2 +- update-mappings.ps1 | 3 + 40 files changed, 3923 insertions(+), 277 deletions(-) create mode 100644 buildSrc/src/main/groovy/CfrDecompiler.groovy create mode 100644 buildSrc/src/main/groovy/Decompiler.groovy create mode 100644 buildSrc/src/main/groovy/ProcyonDecompiler.groovy create mode 100644 bytecode_tweaks/0.2.3.json create mode 100644 intermediary/0.2.3.tiny create mode 100644 mappings/tk/valoeghese/fc0/Game.mapping rename mappings/tk/valoeghese/fc0/{entity/Entity.mapping => Player.mapping} (95%) rename mappings/tk/valoeghese/fc0/client/{Fc0.mapping => Client2fc.mapping} (87%) rename mappings/tk/valoeghese/fc0/client/{Player.mapping => ClientPlayer.mapping} (86%) create mode 100644 mappings/tk/valoeghese/fc0/tile/RandomTextureTile.mapping create mode 100644 mappings/tk/valoeghese/fc0/tile/TorchTile.mapping create mode 100644 mappings/tk/valoeghese/fc0/world/ecozone/ColdWoodlandEcozone.mapping create mode 100644 mappings/tk/valoeghese/fc0/world/ecozone/DesertEcozone.mapping rename mappings/tk/valoeghese/fc0/world/{ => ecozone}/Ecozone.mapping (83%) create mode 100644 mappings/tk/valoeghese/fc0/world/ecozone/TemperateGrasslandEcozone.mapping create mode 100644 mappings/tk/valoeghese/fc0/world/ecozone/TemperateRainforestEcozone.mapping create mode 100644 mappings/tk/valoeghese/fc0/world/ecozone/TemperateWoodlandEcozone.mapping create mode 100644 mappings/tk/valoeghese/fc0/world/ecozone/TropicalGrasslandEcozone.mapping create mode 100644 mappings/tk/valoeghese/fc0/world/ecozone/TropicalRainforestEcozone.mapping create mode 100644 mappings/tk/valoeghese/fc0/world/ecozone/TundraEcozone.mapping create mode 100644 matches/0.2.2-0.2.3.match create mode 100644 patches/tk/valoeghese/fc0/client/gui/screen/HudScreen.patch delete mode 100644 patches/tk/valoeghese/fc0/client/render/world/ChunkRenderer.patch create mode 100644 patches/tk/valoeghese/fc0/world/Chunk.patch create mode 100644 update-mappings.ps1 diff --git a/build.gradle b/build.gradle index e36a43f..4fc8438 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,8 @@ buildscript { import juuxel.fc0.tools.bytecodetweaker.BytecodeTweaker import net.fabricmc.stitch.commands.CommandFixNesting +import java.nio.file.Files + plugins { id 'java' id 'application' @@ -29,7 +31,7 @@ mainClassName = 'tk.valoeghese.fc0.client.Main' sourceCompatibility = JavaVersion.VERSION_1_8 group 'tk.valoeghese' -version '0.2.2' +version '0.2.3' repositories { mavenCentral() @@ -55,6 +57,23 @@ def mappingsDir = project.file('mappings') def intermediaryJar = project.file("build/intermediary-${gameJar.name}") def runDirectory = project.file('run') +if (!gameJar.exists()) { + def url = new URL("https://github.com/valoeghese/2fc-early-releases/raw/master/2fc0f18-${version}.jar") + try { + println "Downloading 2fc0f18 v$version" + + def stream = url.openStream() + try { + Files.copy(stream, gameJar.toPath()) + } finally { + stream.close() + } + } catch (IOException e) { + System.err.println "Could not download 2fc0f18 v$version" + e.printStackTrace() + } +} + if (!runDirectory.exists()) { runDirectory.mkdir() } diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 8f61253..f30f12b 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -24,4 +24,5 @@ dependencies { implementation "com.google.guava:guava:$guava" // for t-m-p implementation "commons-io:commons-io:$commons_io" // for CommandFixNesting implementation "com.github.Juuxel:fc0-tools:$fc0_tools" + implementation "net.fabricmc:procyon-fabric-compilertools:$procyon" } diff --git a/buildSrc/gradle.properties b/buildSrc/gradle.properties index 797e496..9056b06 100644 --- a/buildSrc/gradle.properties +++ b/buildSrc/gradle.properties @@ -7,3 +7,4 @@ tiny_mappings_parser = 0.2.1.13 guava = 28.2-jre commons_io = 2.7 fc0_tools = 1.1.4 +procyon = + diff --git a/buildSrc/src/main/groovy/CfrDecompiler.groovy b/buildSrc/src/main/groovy/CfrDecompiler.groovy new file mode 100644 index 0000000..39925db --- /dev/null +++ b/buildSrc/src/main/groovy/CfrDecompiler.groovy @@ -0,0 +1,69 @@ +import juuxel.fc0.tools.source.EnumFixer +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.file.FileCollection +import org.gradle.api.tasks.Input + +import java.nio.charset.StandardCharsets +import java.nio.file.Files + +class CfrDecompiler implements Decompiler { + @Input + @Override + String getName() { + return "CFR" + } + + @Override + void decompile(File input, FileCollection libraries, File output) { + def driver = new CfrDriver.Builder() + .withOptions( + usenametable: 'false', + sugarenums: 'true', + extraclasspath: libraries.collect { it.absolutePath }.join(File.pathSeparator) + ) + .withOutputSink(new SinkFactory(output)) + .build() + driver.analyse([input.getAbsolutePath()]) + + Files.walk(output.toPath()) + .filter { Files.isRegularFile(it) && it.toString().endsWith(".java") } + .forEach { + def lines = Files.readAllLines(it) + def newLines = EnumFixer.fixEnums(lines) + + if (newLines != null) { + Files.write(it, newLines, StandardCharsets.UTF_8) + } + } + } + + private static void accept(File output, 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 { + private File output + + SinkFactory(File output) { + this.output = output + } + + @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(output, data as SinkReturns.Decompiled) } + : null + } + } +} diff --git a/buildSrc/src/main/groovy/DecompileTask.groovy b/buildSrc/src/main/groovy/DecompileTask.groovy index 3a2da15..c618dfb 100644 --- a/buildSrc/src/main/groovy/DecompileTask.groovy +++ b/buildSrc/src/main/groovy/DecompileTask.groovy @@ -1,18 +1,15 @@ -import juuxel.fc0.tools.source.EnumFixer -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.file.FileCollection import org.gradle.api.tasks.InputFile import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Nested import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.TaskAction -import java.nio.charset.StandardCharsets -import java.nio.file.Files - class DecompileTask extends DefaultTask { + @Nested + Decompiler decompiler = new CfrDecompiler() + @InputFile File input @@ -32,52 +29,11 @@ class DecompileTask extends DefaultTask { cleanOutput.deleteDir() cleanOutput.mkdirs() - def driver = new CfrDriver.Builder() - .withOptions( - usenametable: 'false', - sugarenums: 'true', - extraclasspath: libraries.collect { it.absolutePath }.join(File.pathSeparator) - ) - .withOutputSink(new SinkFactory()) - .build() - driver.analyse([input.getAbsolutePath()]) - - Files.walk(output.toPath()) - .filter { Files.isRegularFile(it) && it.toString().endsWith(".java") } - .forEach { - def lines = Files.readAllLines(it) - def newLines = EnumFixer.fixEnums(lines) - - if (newLines != null) { - Files.write(it, newLines, StandardCharsets.UTF_8) - } - } + decompiler.decompile(input, libraries, output) // https://stackoverflow.com/a/6214823 new AntBuilder().copy(toDir: cleanOutput.absolutePath) { fileset(dir: output.absolutePath) } } - - 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/Decompiler.groovy b/buildSrc/src/main/groovy/Decompiler.groovy new file mode 100644 index 0000000..f9a89f6 --- /dev/null +++ b/buildSrc/src/main/groovy/Decompiler.groovy @@ -0,0 +1,10 @@ +import org.gradle.api.file.FileCollection +import org.gradle.api.tasks.Input + +@FunctionalInterface +interface Decompiler { + @Input + String getName() + + void decompile(File input, FileCollection libraries, File output) +} diff --git a/buildSrc/src/main/groovy/ProcyonDecompiler.groovy b/buildSrc/src/main/groovy/ProcyonDecompiler.groovy new file mode 100644 index 0000000..9e944f1 --- /dev/null +++ b/buildSrc/src/main/groovy/ProcyonDecompiler.groovy @@ -0,0 +1,141 @@ +import com.strobel.assembler.metadata.CompositeTypeLoader +import com.strobel.assembler.metadata.ITypeLoader +import com.strobel.assembler.metadata.JarTypeLoader +import com.strobel.assembler.metadata.MetadataSystem +import com.strobel.assembler.metadata.TypeDefinition +import com.strobel.assembler.metadata.TypeReference +import com.strobel.decompiler.DecompilationOptions +import com.strobel.decompiler.DecompilerSettings +import com.strobel.decompiler.PlainTextOutput +import com.strobel.decompiler.languages.java.BraceStyle +import com.strobel.decompiler.languages.java.JavaFormattingOptions +import cuchaz.enigma.source.procyon.typeloader.NoRetryMetadataSystem +import org.gradle.api.file.FileCollection + +import java.nio.charset.StandardCharsets +import java.nio.file.FileSystem +import java.nio.file.FileSystems +import java.nio.file.Files +import java.nio.file.Path +import java.util.jar.JarFile + +class ProcyonDecompiler implements Decompiler { + @Override + String getName() { + return "Procyon" + } + + @Override + void decompile(File input, FileCollection libraries, File output) { + JarFile inputJar = new JarFile(input) + List typeLoaders = [] + typeLoaders.add(new JarTypeLoader(inputJar)) + + for (File library : libraries) { + typeLoaders.add(new JarTypeLoader(new JarFile(library))) + } + + ITypeLoader typeLoader = new CompositeTypeLoader(typeLoaders as ITypeLoader[]) + + DecompilerSettings settings = DecompilerSettings.javaDefaults() + settings.forceExplicitImports = true + settings.typeLoader = typeLoader + + JavaFormattingOptions format = settings.javaFormattingOptions + format.ClassBraceStyle = BraceStyle.EndOfLine + format.InterfaceBraceStyle = BraceStyle.EndOfLine + format.EnumBraceStyle = BraceStyle.EndOfLine + + MetadataSystem metadataSystem = new NoRetryMetadataSystem(typeLoader) + DecompilationOptions options = new DecompilationOptions() + options.settings = settings + + Path out = output.toPath() + FileSystem inputFs = FileSystems.newFileSystem(URI.create("jar:" + input.toURI()), [create: "false"]) + try { + for (Path rootDirectory : inputFs.rootDirectories) { + Files.find(rootDirectory, Integer.MAX_VALUE, { path, attributes -> attributes.isRegularFile() }).forEach { + Path relative = rootDirectory.relativize(it) + + if (it.toString().endsWith(".class")) { + String relativePath = relative.toString() + String className = relativePath.substring(0, relativePath.length() - ".class".length()) + + Path target = out.resolve(className + ".java") + Path parent = target.parent + + if (parent != null) { + Files.createDirectories(parent) + } + + TypeReference type = metadataSystem.lookupType(className) + TypeDefinition resolvedType = type.resolve() + + def stream = new ByteArrayOutputStream() + def writer = new OutputStreamWriter(stream) + + try { + PlainTextOutput arrayOutput = new PlainTextOutput(writer) + settings.language.decompileType(resolvedType, arrayOutput, options) + + writer.flush() + byte[] bytes = stream.toByteArray() + String code = new String(bytes, StandardCharsets.UTF_8) + String[] lines = code.split("\n") + Files.write(target, sortImports(lines), StandardCharsets.UTF_8) + } finally { + stream.close() + writer.close() + } + } + } + } + } finally { + inputFs.close() + } + } + + private static List sortImports(String[] lines) { + boolean foundImports = false + int importStart = -1 // inclusive + int importEnd = -1 // exclusive + + for (int i = 0; i < lines.length; i++) { + String line = lines[i] + + if (line.startsWith("import ")) { + if (!foundImports) { + foundImports = true + importStart = i + } + } else if (foundImports) { + importEnd = i + break + } + } + + if (!foundImports) { + return lines.toList() + } + + String[] imports = new String[importEnd - importStart] + System.arraycopy(lines, importStart, imports, 0, imports.length) + Arrays.sort(imports) + + List result = new ArrayList<>() + + for (int i = 0; i < importStart; i++) { + result.add(lines[i]) + } + + for (String line : imports) { + result.add(line) + } + + for (int i = importEnd; i < lines.length; i++) { + result.add(lines[i]) + } + + return result + } +} diff --git a/bytecode_tweaks/0.2.3.json b/bytecode_tweaks/0.2.3.json new file mode 100644 index 0000000..5817ba3 --- /dev/null +++ b/bytecode_tweaks/0.2.3.json @@ -0,0 +1,10 @@ +{ + "bridges": { + "tk/valoeghese/fc0/class_34": [ + "apply(Ljava/lang/Object;)Ljava/lang/Object;" + ], + "tk/valoeghese/fc0/class_91": [ + "next()Ljava/lang/Object;" + ] + } +} diff --git a/intermediary/0.2.3.tiny b/intermediary/0.2.3.tiny new file mode 100644 index 0000000..bf7f5d0 --- /dev/null +++ b/intermediary/0.2.3.tiny @@ -0,0 +1,993 @@ +v1 official intermediary +CLASS A tk/valoeghese/fc0/class_121 +FIELD A I a field_421 +FIELD A LC; a field_422 +FIELD A Ljava/util/List; a field_423 +METHOD A ()I a method_377 +METHOD A (I)V a method_378 +METHOD A ()Ljava/lang/String; toString toString +CLASS B tk/valoeghese/fc0/class_100 +FIELD B LP; a field_351 +FIELD B Ll; a field_353 +FIELD B Lm; a field_424 +FIELD B Lp; a field_352 +FIELD B [Z a field_425 +FIELD B LP; b field_354 +FIELD B Ll; b field_426 +FIELD B Ll; c field_427 +METHOD B (LaZ;)V a method_284 +METHOD B (Z)V a method_379 +CLASS C tk/valoeghese/fc0/class_101 +FIELD C Ltk/valoeghese/fc0/client/a; a field_361 +METHOD C ()V a method_294 +METHOD C (DD)V a method_295 +METHOD C (F)V a method_296 +METHOD C (LO;)V a method_297 +METHOD C ()V b method_298 +CLASS D tk/valoeghese/fc0/class_104 +CLASS E tk/valoeghese/fc0/class_102 +FIELD E LA; a field_366 +FIELD E LP; a field_362 +CLASS F tk/valoeghese/fc0/class_105 +FIELD F LA; a field_368 +FIELD F Ls; a field_367 +CLASS G tk/valoeghese/fc0/class_103 +FIELD G J a field_363 +FIELD G Lit/unimi/dsi/fastutil/ints/IntList; a field_364 +FIELD G J b field_365 +METHOD G ()J a method_299 +METHOD G ()V a method_300 +METHOD G ()V b method_301 +CLASS H tk/valoeghese/fc0/class_27 +FIELD H F a field_74 +FIELD H Lorg/joml/Matrix4f; a field_75 +FIELD H Lorg/joml/Vector3f; a field_76 +FIELD H F b field_77 +FIELD H F c field_78 +METHOD H ()F a method_58 +METHOD H ()Lorg/joml/Vector3f; a method_120 +METHOD H ()V a method_59 +METHOD H (F)V a method_60 +METHOD H (FFF)V a method_61 +METHOD H (LL;Lorg/joml/Matrix4f;)V a method_62 +METHOD H (Lorg/joml/Vector3f;)V a method_63 +METHOD H ()V b method_65 +METHOD H (F)V b method_66 +CLASS I tk/valoeghese/fc0/class_106 +FIELD I Ljava/awt/image/BufferedImage; a field_369 +FIELD I Ljava/lang/String; a field_370 +FIELD I Ljava/util/Map; a field_371 +CLASS J tk/valoeghese/fc0/class_107 +FIELD J Ljava/awt/image/BufferedImage; a field_372 +FIELD J Ljava/lang/String; a field_373 +CLASS K tk/valoeghese/fc0/class_106$class_108 +FIELD K I a field_374 +FIELD K I b field_375 +METHOD K ()I a method_302 +METHOD K ()I b method_303 +CLASS L tk/valoeghese/fc0/class_29 +FIELD L I a field_80 +FIELD L LN; a field_84 +FIELD L Lit/unimi/dsi/fastutil/floats/FloatList; a field_81 +FIELD L Lit/unimi/dsi/fastutil/ints/IntList; a field_82 +FIELD L Ljava/util/List; a field_83 +FIELD L I b field_85 +METHOD L ()LN; a method_73 +METHOD L ()V a method_74 +METHOD L (Lorg/joml/Matrix4f;)V a method_75 +METHOD L ()V b method_122 +METHOD L (FFFFFF)I b method_76 +METHOD L (III)V b method_77 +CLASS M tk/valoeghese/fc0/class_29$class_30 +FIELD M I a field_86 +FIELD M I b field_87 +METHOD M (LM;)I a method_78 +METHOD M (LM;)I b method_79 +CLASS N tk/valoeghese/fc0/class_28 +FIELD N I a field_79 +METHOD N ()V a method_72 +METHOD N (Ljava/lang/String;F)V a method_121 +METHOD N (Ljava/lang/String;I)V a method_69 +METHOD N (Ljava/lang/String;Lorg/joml/Matrix4f;)V a method_70 +METHOD N ()V b method_304 +CLASS O tk/valoeghese/fc0/class_32 +FIELD O F a field_88 +FIELD O I a field_89 +FIELD O J a field_90 +FIELD O I b field_91 +METHOD O ()V a method_305 +METHOD O ()Z a method_306 +METHOD O ()[F a method_307 +METHOD O ()V b method_308 +METHOD O (JII)V invoke invoke +CLASS P tk/valoeghese/fc0/class_17 +FIELD P I a field_40 +FIELD P LN; a field_376 +FIELD P Lit/unimi/dsi/fastutil/floats/FloatList; a field_41 +FIELD P Lit/unimi/dsi/fastutil/ints/IntList; a field_42 +FIELD P Ljava/util/List; a field_43 +FIELD P I b field_44 +FIELD P I c field_45 +METHOD P (FFFF)I a method_226 +METHOD P (FFFFF)I a method_37 +METHOD P (III)V a method_38 +METHOD P ()V c method_36 +CLASS Q tk/valoeghese/fc0/class_17$class_18 +FIELD Q I a field_46 +FIELD Q I b field_47 +METHOD Q (LQ;)I a method_40 +METHOD Q (LQ;)I b method_41 +METHOD Q ()Ljava/lang/String; toString toString +CLASS R tk/valoeghese/fc0/class_82 +FIELD R Lit/unimi/dsi/fastutil/ints/IntSet; a field_292 +FIELD R Ljava/util/List; a field_293 +METHOD R (I)Z a method_227 +METHOD R (I)V b method_228 +CLASS S tk/valoeghese/fc0/class_83 +METHOD S ()V a_ method_39 +METHOD S ()V b method_194 +CLASS T tk/valoeghese/fc0/class_109 +METHOD T ()V a method_309 +METHOD T (I)V a method_310 +METHOD T (J)V a method_311 +METHOD T (JII)V a method_312 +METHOD T (LO;)V a method_313 +METHOD T ()V b method_314 +METHOD T (J)V b method_315 +CLASS U tk/valoeghese/fc0/class_31 +METHOD U (Ljava/lang/String;)Ljava/io/InputStream; a method_201 +METHOD U (Ljava/lang/String;)Ljava/lang/String; a method_80 +METHOD U (Ljava/lang/String;)Ljava/net/URL; a method_81 +CLASS V tk/valoeghese/fc0/class_110 +METHOD V (Ljava/awt/image/BufferedImage;)I a method_316 +CLASS W tk/valoeghese/fc0/class_122 +METHOD W (III)I a method_380 +METHOD W (Lbl;Ljava/util/List;[BLad;IIIB)V a method_381 +CLASS X tk/valoeghese/fc0/class_123 +FIELD X LX; a field_428 +FIELD X [LX; a field_429 +CLASS Y tk/valoeghese/fc0/class_124 +CLASS Z tk/valoeghese/fc0/class_48 +FIELD Z Lu; a field_167 +METHOD Z ()Lu; a method_123 +METHOD Z ()V a method_124 +METHOD Z (I)F a method_382 +METHOD Z (II)Lat; a method_224 +CLASS a tk/valoeghese/fc0/class_125 +FIELD a J a field_430 +FIELD a LaA; a field_431 +FIELD a Lbd; a field_432 +FIELD a Ljava/util/Random; a field_433 +METHOD a ()V a method_383 +CLASS aA tk/valoeghese/fc0/class_8 +METHOD aA (II)I a method_16 +METHOD aA (Lao;)B a method_21 +METHOD aA (Lao;)Z a method_22 +METHOD aA (Lao;B)V a method_23 +METHOD aA (IIIB)V b method_19 +METHOD aA (Lao;)B b method_349 +METHOD aA (Lbd;)V c method_24 +CLASS aB tk/valoeghese/fc0/class_50 +METHOD aB (DD)D a method_384 +METHOD aB (III)B a method_17 +METHOD aB (IIIB)V a method_351 +METHOD aB (IILjava/util/function/Predicate;)I a method_20 +METHOD aB (II)Lat; b method_10 +METHOD aB (III)B b method_350 +METHOD aB (III)Z b method_18 +METHOD aB (IIIB)V c method_150 +CLASS aC tk/valoeghese/fc0/class_9 +FIELD aC D a field_434 +FIELD aC Laq; a field_23 +FIELD aC Laq; b field_24 +FIELD aC Laq; c field_25 +FIELD aC Laq; d field_164 +METHOD aC (DD)D a method_385 +METHOD aC (DD)LaH; a method_116 +METHOD aC (LaB;Lat;Ljava/util/Random;)V a method_27 +METHOD aC (LaD;Lau;II)Lat; a method_26 +METHOD aC (DD)D b method_25 +METHOD aC (DD)LaH; b method_117 +METHOD aC (DD)D c method_386 +CLASS aD tk/valoeghese/fc0/class_47 +METHOD aD (Lau;II[B[B)Lat; create create +CLASS aE tk/valoeghese/fc0/class_126 +CLASS aF tk/valoeghese/fc0/class_127 +CLASS aG tk/valoeghese/fc0/class_128 +CLASS aH tk/valoeghese/fc0/class_46 +FIELD aH B a field_150 +FIELD aH LaH; a field_153 +FIELD aH Ljava/lang/String; a field_154 +FIELD aH Ljava/util/Map; a field_189 +FIELD aH Z a field_435 +FIELD aH B b field_155 +FIELD aH LaH; b field_157 +FIELD aH LaH; c field_159 +FIELD aH LaH; d field_160 +FIELD aH LaH; e field_161 +FIELD aH LaH; f field_162 +FIELD aH LaH; g field_163 +FIELD aH LaH; h field_304 +METHOD aH ()Ljava/util/Set; a method_148 +METHOD aH ()V a method_387 +METHOD aH ()Z a method_388 +METHOD aH (LaO;LaP;)V a method_149 +METHOD aH ()Ljava/lang/String; toString toString +CLASS aI tk/valoeghese/fc0/class_129 +CLASS aJ tk/valoeghese/fc0/class_130 +CLASS aK tk/valoeghese/fc0/class_131 +CLASS aL tk/valoeghese/fc0/class_132 +CLASS aM tk/valoeghese/fc0/class_133 +CLASS aN tk/valoeghese/fc0/class_134 +CLASS aO tk/valoeghese/fc0/class_10 +FIELD aO LaO; a field_190 +FIELD aO Ljava/lang/String; a field_191 +FIELD aO LaO; b field_192 +FIELD aO LaO; c field_305 +FIELD aO LaO; d field_404 +METHOD aO (LaB;II)I a method_152 +METHOD aO (LaB;IIIB)Z a method_352 +METHOD aO (LaB;LaP;IILjava/util/Random;)V a method_28 +METHOD aO (Lbl;)Z a method_153 +METHOD aO (Ljava/lang/Object;)Z equals equals +METHOD aO ()I hashCode hashCode +METHOD aO ()Ljava/lang/String; toString toString +CLASS aP tk/valoeghese/fc0/class_51 +CLASS aQ tk/valoeghese/fc0/class_52 +METHOD aQ (LaB;LaR;IILjava/util/Random;)V a method_318 +CLASS aR tk/valoeghese/fc0/class_53 +FIELD aR [Lbl; a field_193 +METHOD aR (Ljava/util/Random;)Lbl; a method_154 +CLASS aS tk/valoeghese/fc0/class_87 +FIELD aS I a field_306 +FIELD aS I b field_307 +FIELD aS I c field_308 +METHOD aS ()I a method_245 +METHOD aS (Ljava/util/Random;)I a method_246 +CLASS aT tk/valoeghese/fc0/class_111 +METHOD aT (LaB;LaX;IILjava/util/Random;)V a method_319 +CLASS aU tk/valoeghese/fc0/class_54 +FIELD aU I a field_194 +FIELD aU I b field_195 +METHOD aU (Ljava/util/Random;)I a method_155 +CLASS aV tk/valoeghese/fc0/class_88 +FIELD aV LaS; a field_309 +METHOD aV (LaB;LaS;IILjava/util/Random;)V a method_320 +CLASS aW tk/valoeghese/fc0/class_11 +METHOD aW (LaB;LaX;IILjava/util/Random;)V a method_321 +CLASS aX tk/valoeghese/fc0/class_55 +FIELD aX F a field_196 +FIELD aX I a field_197 +FIELD aX I b field_198 +FIELD aX I c field_199 +METHOD aX (LaB;II)I a method_156 +METHOD aX (Ljava/util/Random;)I a method_157 +CLASS aY tk/valoeghese/fc0/class_89 +FIELD aY LaY; a field_310 +FIELD aY Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; a field_311 +METHOD aY ()V a method_247 +METHOD aY (I)Ljava/util/List; a method_248 +METHOD aY (ILbb;)V a method_249 +METHOD aY (I)Ljava/util/List; b method_250 +CLASS aZ tk/valoeghese/fc0/class_90 +FIELD aZ I a field_312 +FIELD aZ [Lbb; a field_313 +FIELD aZ I b field_314 +FIELD aZ I c field_315 +METHOD aZ ()I a method_326 +METHOD aZ ()Lbb; a method_252 +METHOD aZ ()V a method_253 +METHOD aZ (I)Lbb; a method_254 +METHOD aZ (I)V a method_255 +METHOD aZ (ILbb;)V a method_256 +METHOD aZ (Lbb;)Z a method_257 +METHOD aZ ()I b method_251 +METHOD aZ (I)V b method_258 +METHOD aZ ()Ljava/util/Iterator; iterator iterator +CLASS aa tk/valoeghese/fc0/class_84 +FIELD aa Ltk/valoeghese/fc0/client/a; a field_294 +CLASS ab tk/valoeghese/fc0/class_37 +FIELD ab D a field_377 +FIELD ab LH; a field_120 +FIELD ab LaH; a field_259 +FIELD ab Lao; a field_436 +FIELD ab D b field_378 +METHOD ab ()LH; a method_87 +METHOD ab (D)Lai; a method_90 +METHOD ab (Ltk/valoeghese/fc0/client/a;I)LaZ; a method_233 +CLASS ac tk/valoeghese/fc0/class_76 +FIELD ac Lag; a field_291 +FIELD ac Ljava/util/List; a field_270 +FIELD ac Ljava/util/Queue; a field_271 +FIELD ac Z a field_272 +METHOD ac ()Ljava/util/List; a method_204 +METHOD ac ()V a method_205 +METHOD ac (LZ;)F a method_225 +CLASS ad tk/valoeghese/fc0/class_7 +METHOD ad (I)Z a method_11 +METHOD ad (II)Lbl; a method_12 +METHOD ad (III)F a method_389 +METHOD ad (II)Lbl; b method_13 +METHOD ad (II)Lbl; c method_14 +METHOD ad (II)Lbl; d method_15 +CLASS ae tk/valoeghese/fc0/class_74 +FIELD ae Lae; a field_249 +FIELD ae Ljava/lang/String; a field_379 +FIELD ae Ljava/util/Properties; a field_251 +FIELD ae Lae; b field_380 +FIELD ae Ljava/lang/String; b field_250 +FIELD ae Ljava/lang/String; c field_252 +METHOD ae ()V a method_317 +METHOD ae (Ljava/lang/String;)Ljava/lang/String; a method_200 +CLASS af tk/valoeghese/fc0/class_34 +FIELD af I a field_94 +FIELD af Laf; a field_95 +FIELD af [Laf; a field_401 +FIELD af I b field_97 +FIELD af Laf; b field_98 +FIELD af I c field_99 +FIELD af Laf; c field_100 +FIELD af Laf; d field_101 +FIELD af Laf; e field_102 +FIELD af Laf; f field_103 +METHOD af ()I a method_125 +METHOD af (Lao;)Lao; a method_85 +METHOD af (Ljava/lang/Object;)Ljava/lang/Object; apply apply +METHOD af ()I b method_126 +METHOD af ()I c method_127 +CLASS ag tk/valoeghese/fc0/class_43 +FIELD ag Lah; a field_142 +METHOD ag (ILjava/lang/Object;)V add add +METHOD ag (Ljava/lang/Object;)Z add add +CLASS ah tk/valoeghese/fc0/class_44 +METHOD ah (Ljava/lang/Object;)F apply apply +CLASS ai tk/valoeghese/fc0/class_1 +FIELD ai Laf; a field_2 +FIELD ai Lao; a field_1 +CLASS aj tk/valoeghese/fc0/class_57 +FIELD aj Z a field_207 +METHOD aj ()V a method_162 +METHOD aj ()Z a method_163 +METHOD aj ()V run run +CLASS ak tk/valoeghese/fc0/class_33 +FIELD ak I a field_92 +FIELD ak I b field_93 +METHOD ak (II)I a method_207 +METHOD ak (Lak;)D a method_339 +METHOD ak (Lak;)I a method_208 +METHOD ak (Ljava/lang/Object;)Z equals equals +METHOD ak ()I hashCode hashCode +METHOD ak ()Ljava/lang/String; toString toString +CLASS al tk/valoeghese/fc0/class_114 +METHOD al (D)I a method_340 +METHOD al (FFFFF)F a method_341 +METHOD al (III)I a method_390 +METHOD al (D)I b method_342 +CLASS am tk/valoeghese/fc0/class_40 +METHOD am (D)Lam; a method_98 +METHOD am (DDD)Lam; a method_343 +METHOD am (Lan;)Lam; a method_100 +METHOD am (D)Lam; b method_101 +METHOD am (DDD)Lam; b method_102 +METHOD am (DDD)Lam; c method_103 +CLASS an tk/valoeghese/fc0/class_45 +FIELD an D a field_143 +FIELD an Lan; a field_178 +FIELD an D b field_144 +FIELD an D c field_145 +METHOD an ()D a method_107 +METHOD an (DDD)Lan; a method_108 +METHOD an ()D b method_110 +METHOD an ()D c method_111 +METHOD an ()Ljava/lang/String; toString toString +CLASS ao tk/valoeghese/fc0/class_3 +FIELD ao I a field_3 +FIELD ao I b field_4 +FIELD ao I c field_5 +METHOD ao ()Lak; a method_209 +METHOD ao ()Lao; a method_133 +METHOD ao ()Z a method_344 +METHOD ao (III)Lao; a method_345 +METHOD ao ()Ljava/lang/String; toString toString +CLASS ap tk/valoeghese/fc0/class_115 +FIELD ap I a field_402 +FIELD ap I b field_403 +METHOD ap ()I a method_346 +METHOD ap ()I b method_347 +METHOD ap (Ljava/lang/Object;)Z equals equals +METHOD ap ()I hashCode hashCode +METHOD ap ()Ljava/lang/String; toString toString +CLASS aq tk/valoeghese/fc0/class_41 +FIELD aq D a field_136 +FIELD aq D b field_137 +CLASS ar tk/valoeghese/fc0/class_42 +FIELD ar [B a field_138 +FIELD ar [S a field_139 +FIELD ar [B b field_140 +FIELD ar [S b field_141 +METHOD ar (D)I a method_104 +METHOD ar (DD)D a method_105 +METHOD ar (DDD)D a method_391 +METHOD ar (IIDD)D a method_106 +METHOD ar (IIIDDD)D a method_392 +CLASS as tk/valoeghese/fc0/class_2 +CLASS at tk/valoeghese/fc0/class_4 +FIELD at B a field_437 +FIELD at F a field_146 +FIELD at I a field_6 +FIELD at Lak; a field_273 +FIELD at Lau; a field_7 +FIELD at Lav; a field_438 +FIELD at Lit/unimi/dsi/fastutil/ints/IntSet; a field_9 +FIELD at Ljava/util/List; a field_10 +FIELD at Ljava/util/concurrent/ExecutorService; a field_439 +FIELD at Z a field_179 +FIELD at [B a field_11 +FIELD at [I a field_440 +FIELD at I b field_12 +FIELD at Z b field_441 +FIELD at [B b field_180 +FIELD at I c field_147 +FIELD at Z c field_274 +FIELD at [B c field_442 +FIELD at I d field_148 +FIELD at Z d field_295 +FIELD at [B d field_443 +FIELD at [B e field_444 +FIELD at [B f field_445 +METHOD at ()Lak; a method_210 +METHOD at ()V a method_393 +METHOD at ()Z a method_234 +METHOD at (B)V a method_394 +METHOD at (II)Lat; a method_395 +METHOD at (III)I a method_4 +METHOD at (III)Ljava/lang/String; a method_396 +METHOD at (III)Z a method_397 +METHOD at (Lau;LaD;Lbp;)Lat; a method_134 +METHOD at (Lbd;)V a method_348 +METHOD at (Lbp;)V a method_135 +METHOD at (Ljava/util/List;)V a method_398 +METHOD at (Ljava/util/Set;)V a method_399 +METHOD at (Ljava/util/Set;IIIIZ)Z a method_400 +METHOD at ()V b method_3 +METHOD at (B)V b method_401 +METHOD at (Lbd;)V b method_5 +METHOD at (Ljava/util/Set;)V b method_402 +METHOD at (Ljava/util/Set;IIIIZ)Z b method_403 +METHOD at ()V c method_404 +METHOD at (B)V c method_405 +METHOD at (III)B c method_406 +METHOD at (Ljava/util/Set;)V c method_407 +METHOD at ()V d method_408 +METHOD at (III)B d method_409 +METHOD at (Ljava/util/Set;)V d method_410 +METHOD at ()V e method_411 +METHOD at ()V f method_412 +METHOD at ()V g method_413 +CLASS au tk/valoeghese/fc0/class_5 +METHOD au ()J a method_136 +METHOD au ()Law; a method_414 +METHOD au (II)Lat; a method_6 +METHOD au (IILav;)Lat; a method_211 +CLASS av tk/valoeghese/fc0/class_77 +FIELD av I a field_446 +FIELD av Lav; a field_275 +FIELD av Z a field_447 +FIELD av [Lav; a field_276 +FIELD av Lav; b field_277 +FIELD av Lav; c field_278 +FIELD av Lav; d field_279 +METHOD av ()Z a method_415 +METHOD av ()[Lav; a method_212 +METHOD av (Lav;)Lav; a method_416 +CLASS aw tk/valoeghese/fc0/class_6 +FIELD aw B a field_448 +FIELD aw I a field_20 +FIELD aw J a field_149 +FIELD aw LaB; a field_280 +FIELD aw LaC; a field_449 +FIELD aw LaD; a field_281 +FIELD aw Lak; a field_450 +FIELD aw Lbe; a field_282 +FIELD aw Lit/unimi/dsi/fastutil/longs/Long2ObjectMap; a field_18 +FIELD aw Ljava/util/Random; a field_16 +FIELD aw Ljava/util/concurrent/ExecutorService; a field_283 +FIELD aw I b field_21 +FIELD aw Ljava/util/Random; b field_451 +METHOD aw ()B a method_417 +METHOD aw ()Ljava/util/Iterator; a method_112 +METHOD aw (B)V a method_418 +METHOD aw (DD)LaH; a method_419 +METHOD aw (II)J a method_213 +METHOD aw (Lat;)V a method_214 +METHOD aw (Ljava/util/List;)V a method_215 +METHOD aw ()V b method_137 +METHOD aw (II)Lat; c method_216 +CLASS ax tk/valoeghese/fc0/class_78 +FIELD ax [I a field_284 +CLASS ay tk/valoeghese/fc0/class_6$class_79 +FIELD ay Law; a field_285 +CLASS az tk/valoeghese/fc0/class_80 +METHOD az ()Lak; a method_420 +METHOD az (Lak;)V a method_217 +CLASS b tk/valoeghese/fc0/class_19 +FIELD b I a field_381 +FIELD b Ljava/lang/String; a field_49 +FIELD b Z a field_51 +FIELD b Z b field_54 +FIELD b Z c field_382 +METHOD b ()Z a method_43 +METHOD b (I)Ljava/util/List; a method_45 +METHOD b (I)V a method_46 +METHOD b ()Z b method_48 +METHOD b (I)Ljava/util/List; b method_49 +METHOD b ()Ljava/lang/String; toString toString +CLASS bA tk/valoeghese/fc0/class_71 +FIELD bA Lit/unimi/dsi/fastutil/shorts/ShortList; a field_240 +METHOD bA ()I a method_192 +METHOD bA (S)V a method_357 +METHOD bA ()Ljava/util/Iterator; iterator iterator +CLASS bB tk/valoeghese/fc0/class_72 +FIELD bB Ljava/util/List; a field_241 +METHOD bB ()I a method_193 +METHOD bB (Ljava/lang/String;)V a method_358 +METHOD bB ()Ljava/util/Iterator; iterator iterator +CLASS bC tk/valoeghese/fc0/class_73 +CLASS ba tk/valoeghese/fc0/class_91 +FIELD ba I a field_316 +FIELD ba [Lbb; a field_317 +METHOD ba ()Lbb; a method_327 +METHOD ba ()Z hasNext hasNext +METHOD ba ()Ljava/lang/Object; next next +CLASS bb tk/valoeghese/fc0/class_92 +FIELD bb B a field_318 +FIELD bb I a field_323 +FIELD bb LaZ; a field_321 +FIELD bb Lbc; a field_390 +FIELD bb Lbl; a field_320 +FIELD bb Z a field_322 +FIELD bb I b field_319 +METHOD bb ()B a method_259 +METHOD bb ()I a method_260 +METHOD bb ()Lbc; a method_328 +METHOD bb ()Lbl; a method_261 +METHOD bb ()V a method_262 +METHOD bb ()Z a method_263 +METHOD bb ()[Ljava/lang/String; a method_264 +METHOD bb (I)V a method_265 +METHOD bb (LaZ;I)V a method_266 +METHOD bb ()I b method_267 +CLASS bc tk/valoeghese/fc0/class_112 +FIELD bc I a field_383 +FIELD bc Lbc; a field_452 +FIELD bc Ljava/lang/String; a field_385 +FIELD bc Ljava/util/List; a field_453 +FIELD bc [Lbc; a field_386 +FIELD bc I b field_387 +FIELD bc Lbc; b field_384 +FIELD bc Ljava/lang/String; b field_388 +FIELD bc I c field_389 +METHOD bc ()I a method_322 +METHOD bc (Ljava/lang/String;)Lbc; a method_323 +METHOD bc (Ljava/util/function/Function;)V a method_324 +METHOD bc ()I b method_325 +METHOD bc ()Ljava/lang/String; toString toString +CLASS bd tk/valoeghese/fc0/class_49 +FIELD bd D a field_324 +FIELD bd J a field_182 +FIELD bd LaZ; a field_325 +FIELD bd Lam; a field_183 +FIELD bd Lat; a field_184 +FIELD bd Laz; a field_185 +FIELD bd Z a field_187 +FIELD bd Lam; b field_188 +FIELD bd Z b field_326 +FIELD bd Z c field_454 +METHOD bd ()D a method_329 +METHOD bd ()F a method_330 +METHOD bd ()I a method_138 +METHOD bd ()LaZ; a method_268 +METHOD bd ()Lan; a method_139 +METHOD bd ()Lao; a method_140 +METHOD bd ()V a method_88 +METHOD bd ()Z a method_141 +METHOD bd (DDD)V a method_142 +METHOD bd (DDD)Z a method_92 +METHOD bd (Lan;)V a method_95 +METHOD bd (Laz;Lan;Lbe;)V a method_144 +METHOD bd (Laz;Lbe;)V a method_143 +METHOD bd (Lbe;)V a method_269 +METHOD bd (Z)V a method_421 +METHOD bd ()I b method_145 +METHOD bd ()V b method_270 +METHOD bd ()Z b method_146 +METHOD bd (Lbe;)V b method_271 +METHOD bd ()V c method_422 +METHOD bd ()Z c method_423 +METHOD bd ()Z d method_147 +CLASS be tk/valoeghese/fc0/class_56 +FIELD be B a field_455 +FIELD be J a field_200 +FIELD be Laj; a field_202 +FIELD be Lan; a field_201 +FIELD be Ljava/io/File; a field_203 +FIELD be Ljava/lang/Object; a field_204 +FIELD be Z a field_456 +FIELD be [Lbb; a field_327 +FIELD be Lan; b field_205 +FIELD be Ljava/io/File; b field_206 +METHOD be ()J a method_158 +METHOD be (LaC;Lau;IILaD;)Lat; a method_159 +METHOD be (Lat;)V a method_218 +METHOD be (Lbd;Ljava/util/Iterator;Ljava/util/Iterator;ILan;Lan;J)V a method_161 +METHOD be (Lbr;)[Lbb; a method_272 +METHOD be (Ljava/util/Iterator;)V a method_219 +METHOD be (Ljava/util/Iterator;JLan;Lan;Lbd;Ljava/util/Iterator;I)V a method_160 +METHOD be (Ljava/util/Iterator;)V b method_220 +CLASS bf tk/valoeghese/fc0/class_13 +FIELD bf Ljava/lang/String; b field_391 +FIELD bf I c field_392 +FIELD bf I d field_393 +CLASS bg tk/valoeghese/fc0/class_12 +FIELD bg Lap; a field_394 +FIELD bg Lap; b field_395 +FIELD bg Lap; c field_396 +CLASS bh tk/valoeghese/fc0/class_85 +CLASS bi tk/valoeghese/fc0/class_113 +FIELD bi I c field_397 +FIELD bi I d field_398 +CLASS bj tk/valoeghese/fc0/class_135 +FIELD bj Lit/unimi/dsi/fastutil/bytes/Byte2ObjectArrayMap; a field_457 +FIELD bj Ljava/util/List; a field_458 +FIELD bj I c field_459 +CLASS bk tk/valoeghese/fc0/class_86 +FIELD bk Ljava/util/function/Predicate; a field_399 +CLASS bl tk/valoeghese/fc0/class_14 +FIELD bl B a field_27 +FIELD bl F a field_165 +FIELD bl I a field_28 +FIELD bl Lbl; a field_29 +FIELD bl Ljava/lang/String; a field_299 +FIELD bl Z a field_30 +FIELD bl [Lbl; a field_31 +FIELD bl I b field_32 +FIELD bl Lbl; b field_33 +FIELD bl Ljava/lang/String; b field_400 +FIELD bl Z b field_460 +FIELD bl I c field_461 +FIELD bl Lbl; c field_35 +FIELD bl Z c field_34 +FIELD bl Lbl; d field_36 +FIELD bl Z d field_208 +FIELD bl Lbl; e field_37 +FIELD bl Z e field_300 +FIELD bl Lbl; f field_38 +FIELD bl Z f field_301 +FIELD bl Lbl; g field_39 +FIELD bl Lbl; h field_209 +FIELD bl Lbl; i field_210 +FIELD bl Lbl; j field_211 +FIELD bl Lbl; k field_212 +FIELD bl Lbl; l field_213 +FIELD bl Lbl; m field_302 +FIELD bl Lbl; n field_303 +FIELD bl Lbl; o field_462 +FIELD bl Lbl; p field_463 +METHOD bl ()F a method_237 +METHOD bl ()I a method_424 +METHOD bl ()LW; a method_425 +METHOD bl ()Lbc; a method_426 +METHOD bl ()Lbl; a method_30 +METHOD bl ()Z a method_427 +METHOD bl (I)Lbl; a method_428 +METHOD bl (IB)I a method_35 +METHOD bl (LaA;Lao;)V a method_429 +METHOD bl (LaB;III)Z a method_238 +METHOD bl (Lbl;)Z a method_331 +METHOD bl (Ljava/lang/String;)Lbl; a method_239 +METHOD bl (Ljava/util/Random;B)Lbb; a method_332 +METHOD bl (Ljava/util/function/Function;)V a method_333 +METHOD bl (ZLbl;)Z a method_33 +METHOD bl ()Lbl; b method_334 +METHOD bl ()Z b method_430 +METHOD bl (IB)I b method_32 +METHOD bl (Lbl;)Z b method_335 +METHOD bl ()Lbl; c method_164 +METHOD bl ()Z c method_31 +METHOD bl (Lbl;)Z c method_336 +METHOD bl ()Lbl; d method_337 +METHOD bl ()Z d method_165 +METHOD bl ()Lbl; e method_338 +METHOD bl ()Z e method_34 +METHOD bl ()Z f method_240 +METHOD bl ()Z g method_241 +METHOD bl ()Ljava/lang/String; toString toString +CLASS bm tk/valoeghese/fc0/class_136 +CLASS bn tk/valoeghese/fc0/class_15 +CLASS bo tk/valoeghese/fc0/class_59 +METHOD bo (Ljava/lang/Object;)V a method_166 +CLASS bp tk/valoeghese/fc0/class_60 +FIELD bp Ljava/util/Map; a field_214 +METHOD bp (Ljava/io/File;)Lbp; a method_167 +METHOD bp (Ljava/io/File;)V a method_168 +METHOD bp (Ljava/lang/String;)Lbq; a method_169 +METHOD bp (Ljava/lang/String;)Lbr; a method_170 +METHOD bp (Ljava/lang/String;)Lbw; a method_431 +METHOD bp (Ljava/lang/String;)Z a method_242 +METHOD bp (Ljava/lang/String;Lbo;)V a method_171 +METHOD bp ()Ljava/util/Iterator; iterator iterator +CLASS bq tk/valoeghese/fc0/class_61 +FIELD bq Lit/unimi/dsi/fastutil/bytes/ByteList; a field_215 +METHOD bq ()I a method_172 +METHOD bq (B)V a method_173 +METHOD bq (I)B a method_174 +METHOD bq ()Ljava/util/Iterator; iterator iterator +CLASS br tk/valoeghese/fc0/class_62 +FIELD br Ljava/util/List; a field_216 +METHOD br (B)V a method_243 +METHOD br (D)V a method_175 +METHOD br (I)B a method_244 +METHOD br (I)D a method_176 +METHOD br (I)I a method_177 +METHOD br (I)J a method_178 +METHOD br (I)V a method_179 +METHOD br (I)Z a method_180 +METHOD br (J)V a method_181 +METHOD br (Z)V a method_182 +METHOD br ()Ljava/util/Iterator; iterator iterator +CLASS bs tk/valoeghese/fc0/class_63 +FIELD bs B a field_217 +FIELD bs Lbs; a field_218 +FIELD bs [Lbs; a field_219 +FIELD bs Lbs; b field_220 +FIELD bs Lbs; c field_221 +FIELD bs Lbs; d field_222 +FIELD bs Lbs; e field_223 +FIELD bs Lbs; f field_224 +FIELD bs Lbs; g field_225 +FIELD bs Lbs; h field_226 +FIELD bs Lbs; i field_227 +FIELD bs Lbs; j field_228 +FIELD bs Lbs; k field_229 +FIELD bs Lbs; l field_230 +FIELD bs Lbs; m field_231 +FIELD bs Lbs; n field_232 +FIELD bs Lbs; o field_233 +METHOD bs ()Lbo; a method_183 +METHOD bs ()[Lbs; a method_184 +METHOD bs (B)Lbs; a method_185 +CLASS bt tk/valoeghese/fc0/class_64 +FIELD bt [I a field_234 +CLASS bu tk/valoeghese/fc0/class_65 +FIELD bu Lit/unimi/dsi/fastutil/doubles/DoubleList; a field_235 +METHOD bu ()I a method_186 +METHOD bu (D)V a method_353 +METHOD bu ()Ljava/util/Iterator; iterator iterator +CLASS bv tk/valoeghese/fc0/class_66 +FIELD bv Lit/unimi/dsi/fastutil/floats/FloatList; a field_236 +METHOD bv ()I a method_187 +METHOD bv (F)V a method_354 +METHOD bv ()Ljava/util/Iterator; iterator iterator +CLASS bw tk/valoeghese/fc0/class_67 +FIELD bw Lit/unimi/dsi/fastutil/ints/IntList; a field_237 +METHOD bw ()I a method_188 +METHOD bw (I)I a method_432 +METHOD bw (I)V a method_355 +METHOD bw ()Ljava/util/Iterator; iterator iterator +CLASS bx tk/valoeghese/fc0/class_68 +FIELD bx Lit/unimi/dsi/fastutil/longs/LongList; a field_238 +METHOD bx ()I a method_189 +METHOD bx (J)V a method_356 +METHOD bx ()Ljava/util/Iterator; iterator iterator +CLASS by tk/valoeghese/fc0/class_69 +METHOD by (Lbp;Ljava/io/DataOutputStream;)V a method_190 +METHOD by (Ljava/io/DataInputStream;)Lbp; a method_191 +CLASS bz tk/valoeghese/fc0/class_70 +FIELD bz [I a field_239 +CLASS c tk/valoeghese/fc0/class_20 +FIELD c Lc; a field_55 +FIELD c Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; a field_56 +FIELD c [Lc; a field_405 +METHOD c (JIIII)V invoke invoke +CLASS d tk/valoeghese/fc0/class_21 +FIELD d Ld; a field_57 +FIELD d Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; a field_58 +FIELD d [Ld; a field_406 +METHOD d (JIII)V invoke invoke +CLASS e tk/valoeghese/fc0/class_116 +FIELD e LN; a field_407 +FIELD e LN; b field_408 +CLASS f tk/valoeghese/fc0/class_26 +FIELD f I a field_71 +FIELD f LI; a field_409 +FIELD f I b field_410 +FIELD f LI; b field_411 +FIELD f I c field_73 +FIELD f I d field_166 +FIELD f I e field_289 +FIELD f I f field_328 +FIELD f I g field_329 +FIELD f I h field_412 +FIELD f I i field_330 +METHOD f ()V a method_359 +METHOD f (LI;)I a method_360 +METHOD f (Ljava/lang/String;Ljava/util/function/Consumer;)LI; a method_361 +METHOD f (Ljava/lang/String;Z)I a method_57 +METHOD f (Ljava/util/Set;)V a method_362 +METHOD f (Ljava/util/Set;Ljava/lang/String;)Lap; a method_363 +METHOD f (Ljava/lang/String;Ljava/util/function/Consumer;)LI; b method_364 +METHOD f (Ljava/util/Set;)V b method_365 +METHOD f (Ljava/util/Set;Ljava/lang/String;)Lap; b method_366 +METHOD f (Ljava/util/Set;Ljava/lang/String;)Lap; c method_367 +CLASS g tk/valoeghese/fc0/class_117 +FIELD g F b field_413 +FIELD g F c field_414 +FIELD g F d field_415 +FIELD g F e field_416 +METHOD g (FF)Z a method_368 +CLASS h tk/valoeghese/fc0/class_58 +CLASS i tk/valoeghese/fc0/class_81 +FIELD i F a field_286 +FIELD i F b field_287 +FIELD i F c field_288 +METHOD i (Lbc;F)V a method_369 +METHOD i (Lbl;BF)V a method_221 +CLASS j tk/valoeghese/fc0/class_98 +FIELD j F a field_417 +FIELD j [[F a field_347 +METHOD j (FF)V a method_281 +CLASS k tk/valoeghese/fc0/class_118 +CLASS l tk/valoeghese/fc0/class_16 +FIELD l F a field_246 +FIELD l Ljava/lang/String; a field_464 +FIELD l F b field_247 +FIELD l F c field_248 +METHOD l (Ljava/lang/String;)V a method_198 +METHOD l ([C)V a method_199 +CLASS m tk/valoeghese/fc0/class_137 +METHOD m ()F a method_433 +METHOD m (FF)V a method_434 +CLASS n tk/valoeghese/fc0/class_93 +FIELD n LaZ; a field_331 +FIELD n Z a field_332 +METHOD n ()Z a method_273 +METHOD n (FF)Lbb; a method_274 +METHOD n (Z)V a method_275 +METHOD n ()V c method_276 +CLASS o tk/valoeghese/fc0/class_94 +FIELD o Lbb; a field_334 +FIELD o Lg; a field_336 +FIELD o Li; a field_335 +FIELD o Ll; a field_337 +METHOD o (FF)Z a method_370 +CLASS p tk/valoeghese/fc0/class_95 +FIELD p LaZ; a field_341 +FIELD p Lj; a field_342 +FIELD p Z a field_343 +FIELD p Ljava/util/List; b field_344 +METHOD p (I)V a method_277 +METHOD p (IF)V a method_278 +METHOD p (Lr;)V a method_279 +CLASS q tk/valoeghese/fc0/class_96 +FIELD q Li; a field_345 +FIELD q Ll; a field_346 +CLASS r tk/valoeghese/fc0/class_97 +METHOD r ()V a method_280 +CLASS s tk/valoeghese/fc0/class_119 +METHOD s (FF)I a method_371 +CLASS t tk/valoeghese/fc0/class_120 +FIELD t Lg; a field_418 +FIELD t Ll; a field_419 +METHOD t (Lt;FF)Z a method_372 +CLASS tk/valoeghese/fc0/client/Main tk/valoeghese/fc0/client/Main +METHOD tk/valoeghese/fc0/client/Main (Ljava/lang/Object;)V a method_373 +METHOD tk/valoeghese/fc0/client/Main ([Ljava/lang/String;)V main main +CLASS tk/valoeghese/fc0/client/a tk/valoeghese/fc0/class_36 +FIELD tk/valoeghese/fc0/client/a D a field_105 +FIELD tk/valoeghese/fc0/client/a I a field_168 +FIELD tk/valoeghese/fc0/client/a LB; a field_356 +FIELD tk/valoeghese/fc0/client/a LC; a field_171 +FIELD tk/valoeghese/fc0/client/a LO; a field_110 +FIELD tk/valoeghese/fc0/client/a LP; a field_115 +FIELD tk/valoeghese/fc0/client/a Lae; a field_257 +FIELD tk/valoeghese/fc0/client/a Lan; a field_254 +FIELD tk/valoeghese/fc0/client/a Lbe; a field_255 +FIELD tk/valoeghese/fc0/client/a Ljava/util/Queue; a field_465 +FIELD tk/valoeghese/fc0/client/a Lorg/joml/Matrix4f; a field_109 +FIELD tk/valoeghese/fc0/client/a Ltk/valoeghese/fc0/client/a; a field_258 +FIELD tk/valoeghese/fc0/client/a Z a field_466 +FIELD tk/valoeghese/fc0/client/a D b field_112 +FIELD tk/valoeghese/fc0/client/a J b field_106 +FIELD tk/valoeghese/fc0/client/a LC; b field_357 +FIELD tk/valoeghese/fc0/client/a Lorg/joml/Matrix4f; b field_114 +FIELD tk/valoeghese/fc0/client/a LC; c field_358 +METHOD tk/valoeghese/fc0/client/a ()F a method_285 +METHOD tk/valoeghese/fc0/client/a ()J a method_286 +METHOD tk/valoeghese/fc0/client/a ()LO; a method_287 +METHOD tk/valoeghese/fc0/client/a ()Lab; a method_222 +METHOD tk/valoeghese/fc0/client/a ()Lac; a method_288 +METHOD tk/valoeghese/fc0/client/a ()Lp; a method_289 +METHOD tk/valoeghese/fc0/client/a ()Ltk/valoeghese/fc0/client/a; a method_202 +METHOD tk/valoeghese/fc0/client/a ()Z a method_435 +METHOD tk/valoeghese/fc0/client/a (I)V a method_129 +METHOD tk/valoeghese/fc0/client/a (LC;)V a method_291 +METHOD tk/valoeghese/fc0/client/a (Lac;)V a method_290 +METHOD tk/valoeghese/fc0/client/a (Ljava/lang/Runnable;)V a method_436 +METHOD tk/valoeghese/fc0/client/a (Ljava/lang/String;)Lap; a method_374 +METHOD tk/valoeghese/fc0/client/a (Ljava/lang/String;)V a method_292 +METHOD tk/valoeghese/fc0/client/a (Z)V a method_437 +METHOD tk/valoeghese/fc0/client/a ()V b method_203 +METHOD tk/valoeghese/fc0/client/a (Ljava/lang/String;)Lap; b method_375 +METHOD tk/valoeghese/fc0/client/a ()V c method_293 +METHOD tk/valoeghese/fc0/client/a ()V d method_376 +METHOD tk/valoeghese/fc0/client/a ()V e method_223 +METHOD tk/valoeghese/fc0/client/a ()V f method_128 +METHOD tk/valoeghese/fc0/client/a (JDD)V invoke invoke +METHOD tk/valoeghese/fc0/client/a ()V run run +CLASS tk/valoeghese/fc0/client/b tk/valoeghese/fc0/class_39 +FIELD tk/valoeghese/fc0/client/b Lb; A field_467 +FIELD tk/valoeghese/fc0/client/b Lb; B field_468 +FIELD tk/valoeghese/fc0/client/b Lb; C field_469 +FIELD tk/valoeghese/fc0/client/b Lb; D field_470 +FIELD tk/valoeghese/fc0/client/b Lb; a field_126 +FIELD tk/valoeghese/fc0/client/b Lb; b field_127 +FIELD tk/valoeghese/fc0/client/b Lb; c field_128 +FIELD tk/valoeghese/fc0/client/b Lb; d field_129 +FIELD tk/valoeghese/fc0/client/b Lb; e field_130 +FIELD tk/valoeghese/fc0/client/b Lb; f field_131 +FIELD tk/valoeghese/fc0/client/b Lb; g field_132 +FIELD tk/valoeghese/fc0/client/b Lb; h field_133 +FIELD tk/valoeghese/fc0/client/b Lb; i field_134 +FIELD tk/valoeghese/fc0/client/b Lb; j field_135 +FIELD tk/valoeghese/fc0/client/b Lb; k field_176 +FIELD tk/valoeghese/fc0/client/b Lb; l field_177 +FIELD tk/valoeghese/fc0/client/b Lb; m field_359 +FIELD tk/valoeghese/fc0/client/b Lb; n field_260 +FIELD tk/valoeghese/fc0/client/b Lb; o field_261 +FIELD tk/valoeghese/fc0/client/b Lb; p field_262 +FIELD tk/valoeghese/fc0/client/b Lb; q field_263 +FIELD tk/valoeghese/fc0/client/b Lb; r field_264 +FIELD tk/valoeghese/fc0/client/b Lb; s field_265 +FIELD tk/valoeghese/fc0/client/b Lb; t field_266 +FIELD tk/valoeghese/fc0/client/b Lb; u field_267 +FIELD tk/valoeghese/fc0/client/b Lb; v field_268 +FIELD tk/valoeghese/fc0/client/b Lb; w field_269 +FIELD tk/valoeghese/fc0/client/b Lb; x field_360 +FIELD tk/valoeghese/fc0/client/b Lb; y field_471 +FIELD tk/valoeghese/fc0/client/b Lb; z field_472 +CLASS u tk/valoeghese/fc0/class_22 +FIELD u I a field_59 +FIELD u Lad; a field_60 +FIELD u Lorg/joml/Matrix4f; a field_62 +FIELD u Lx; a field_61 +FIELD u [B a field_63 +FIELD u I b field_64 +FIELD u Lx; b field_348 +FIELD u [B b field_253 +FIELD u Lx; c field_65 +METHOD u ()V a method_50 +METHOD u (IB)V a method_51 +METHOD u (III)I a method_52 +METHOD u (LH;)V a method_118 +METHOD u ()V b method_119 +METHOD u (LH;)V b method_282 +METHOD u (LH;)V c method_53 +CLASS v tk/valoeghese/fc0/class_75 +CLASS w tk/valoeghese/fc0/class_23 +FIELD w F a field_66 +FIELD w I a field_67 +FIELD w Lorg/joml/Vector3f; a field_68 +FIELD w I b field_69 +FIELD w I c field_70 +METHOD w (Ly;)V a method_54 +CLASS x tk/valoeghese/fc0/class_24 +CLASS y tk/valoeghese/fc0/class_25 +METHOD y (FFFFFF)I a method_55 +METHOD y (III)V a method_56 +CLASS z tk/valoeghese/fc0/class_99 +FIELD z LP; a field_349 +FIELD z Ln; a field_350 +METHOD z ()V c method_283 +# INTERMEDIARY-COUNTER field 424 +# INTERMEDIARY-COUNTER method 379 +# INTERMEDIARY-COUNTER class 122 \ No newline at end of file diff --git a/mappings/tk/valoeghese/fc0/Game.mapping b/mappings/tk/valoeghese/fc0/Game.mapping new file mode 100644 index 0000000..b97ee57 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/Game.mapping @@ -0,0 +1,6 @@ +CLASS tk/valoeghese/fc0/class_125 tk/valoeghese/fc0/Game + FIELD field_430 time J + FIELD field_431 world Ltk/valoeghese/fc0/class_8; + FIELD field_432 player Ltk/valoeghese/fc0/class_49; + FIELD field_433 RANDOM Ljava/util/Random; + METHOD method_383 tick ()V diff --git a/mappings/tk/valoeghese/fc0/entity/Entity.mapping b/mappings/tk/valoeghese/fc0/Player.mapping similarity index 95% rename from mappings/tk/valoeghese/fc0/entity/Entity.mapping rename to mappings/tk/valoeghese/fc0/Player.mapping index da2c0d8..9cf4fa3 100644 --- a/mappings/tk/valoeghese/fc0/entity/Entity.mapping +++ b/mappings/tk/valoeghese/fc0/Player.mapping @@ -1,4 +1,4 @@ -CLASS tk/valoeghese/fc0/class_49 tk/valoeghese/fc0/entity/Entity +CLASS tk/valoeghese/fc0/class_49 tk/valoeghese/fc0/Player FIELD field_183 pos Ltk/valoeghese/fc0/class_40; FIELD field_184 chunk Ltk/valoeghese/fc0/class_4; FIELD field_185 world Ltk/valoeghese/fc0/class_80; diff --git a/mappings/tk/valoeghese/fc0/client/Fc0.mapping b/mappings/tk/valoeghese/fc0/client/Client2fc.mapping similarity index 87% rename from mappings/tk/valoeghese/fc0/client/Fc0.mapping rename to mappings/tk/valoeghese/fc0/client/Client2fc.mapping index b00c695..094c784 100644 --- a/mappings/tk/valoeghese/fc0/client/Fc0.mapping +++ b/mappings/tk/valoeghese/fc0/client/Client2fc.mapping @@ -1,23 +1,20 @@ -CLASS tk/valoeghese/fc0/class_36 tk/valoeghese/fc0/client/Fc0 +CLASS tk/valoeghese/fc0/class_36 tk/valoeghese/fc0/client/Client2fc FIELD field_105 cursorX D - FIELD field_107 world Ltk/valoeghese/fc0/class_76; FIELD field_109 projection Lorg/joml/Matrix4f; FIELD field_110 window Ltk/valoeghese/fc0/class_32; - FIELD field_111 player Ltk/valoeghese/fc0/class_37; FIELD field_112 cursorY D FIELD field_114 guiProjection Lorg/joml/Matrix4f; FIELD field_115 waterOverlay Ltk/valoeghese/fc0/class_17; FIELD field_168 fov I - FIELD field_170 time J FIELD field_171 titleScreen Ltk/valoeghese/fc0/class_101; FIELD field_254 spawnPoint Ltk/valoeghese/fc0/class_45; FIELD field_255 chunkStorage Ltk/valoeghese/fc0/class_56; FIELD field_257 i18n Ltk/valoeghese/fc0/class_74; FIELD field_258 instance Ltk/valoeghese/fc0/class_36; - FIELD field_355 RANDOM Ljava/util/Random; FIELD field_356 hudScreen Ltk/valoeghese/fc0/class_100; FIELD field_357 inventoryScreen Ltk/valoeghese/fc0/class_101; FIELD field_358 currentScreen Ltk/valoeghese/fc0/class_101; + FIELD field_465 taskQueue Ljava/util/Queue; METHOD invoke (JDD)V ARG 1 pointer ARG 3 x @@ -42,3 +39,5 @@ CLASS tk/valoeghese/fc0/class_36 tk/valoeghese/fc0/client/Fc0 ARG 1 save METHOD method_293 generateSpawn ()V METHOD method_376 initGameRendering ()V + METHOD method_436 addTask (Ljava/lang/Runnable;)V + ARG 1 task diff --git a/mappings/tk/valoeghese/fc0/client/Player.mapping b/mappings/tk/valoeghese/fc0/client/ClientPlayer.mapping similarity index 86% rename from mappings/tk/valoeghese/fc0/client/Player.mapping rename to mappings/tk/valoeghese/fc0/client/ClientPlayer.mapping index 5161c48..1359583 100644 --- a/mappings/tk/valoeghese/fc0/client/Player.mapping +++ b/mappings/tk/valoeghese/fc0/client/ClientPlayer.mapping @@ -1,4 +1,4 @@ -CLASS tk/valoeghese/fc0/class_37 tk/valoeghese/fc0/client/Player +CLASS tk/valoeghese/fc0/class_37 tk/valoeghese/fc0/client/ClientPlayer FIELD field_120 camera Ltk/valoeghese/fc0/class_27; FIELD field_259 currentEcozone Ltk/valoeghese/fc0/class_46; METHOD (Ltk/valoeghese/fc0/class_27;Ltk/valoeghese/fc0/class_36;Z)V diff --git a/mappings/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.mapping b/mappings/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.mapping index c38a89f..612282a 100644 --- a/mappings/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.mapping +++ b/mappings/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.mapping @@ -11,17 +11,6 @@ CLASS tk/valoeghese/fc0/class_56 tk/valoeghese/fc0/io/ThreadedSodChunkStorage ARG 1 path ARG 2 seed METHOD method_158 getSeed ()J - METHOD method_159 loadOrCreate (Ltk/valoeghese/fc0/class_5;IILtk/valoeghese/fc0/class_47;)Ltk/valoeghese/fc0/class_4; - ARG 1 world - ARG 2 x - ARG 3 z - ARG 4 factory - METHOD method_161 save (Ljava/util/Iterator;Ljava/util/Iterator;ILtk/valoeghese/fc0/class_45;Ltk/valoeghese/fc0/class_45;J)V - ARG 1 chunks - ARG 2 inventory - ARG 4 playerPos - ARG 5 spawnPoint - ARG 6 seed METHOD method_218 save (Ltk/valoeghese/fc0/class_4;)V ARG 1 chunk METHOD method_219 saveChunks (Ljava/util/Iterator;)V diff --git a/mappings/tk/valoeghese/fc0/math/Maths.mapping b/mappings/tk/valoeghese/fc0/math/Maths.mapping index 3f4c283..ac1ff4e 100644 --- a/mappings/tk/valoeghese/fc0/math/Maths.mapping +++ b/mappings/tk/valoeghese/fc0/math/Maths.mapping @@ -10,3 +10,7 @@ CLASS tk/valoeghese/fc0/class_114 tk/valoeghese/fc0/math/Maths ARG 4 d METHOD method_342 floor (D)I ARG 0 x + METHOD method_390 clamp (III)I + ARG 0 x + ARG 1 min + ARG 2 max diff --git a/mappings/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.mapping b/mappings/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.mapping index 0382aa5..3b24ecd 100644 --- a/mappings/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.mapping +++ b/mappings/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.mapping @@ -15,3 +15,14 @@ CLASS tk/valoeghese/fc0/class_42 tk/valoeghese/fc0/math/noise/OpenSimplexNoise ARG 2 ysb ARG 3 dx ARG 5 dy + METHOD method_391 eval (DDD)D + ARG 1 x + ARG 3 y + ARG 5 z + METHOD method_392 extrapolate (IIIDDD)D + ARG 1 xsb + ARG 2 ysb + ARG 3 zsb + ARG 4 dx + ARG 6 dy + ARG 8 dz diff --git a/mappings/tk/valoeghese/fc0/tile/RandomTextureTile.mapping b/mappings/tk/valoeghese/fc0/tile/RandomTextureTile.mapping new file mode 100644 index 0000000..9ad4d2c --- /dev/null +++ b/mappings/tk/valoeghese/fc0/tile/RandomTextureTile.mapping @@ -0,0 +1,7 @@ +CLASS tk/valoeghese/fc0/class_135 tk/valoeghese/fc0/tile/RandomTextureTile + FIELD field_457 texturePositions Lit/unimi/dsi/fastutil/bytes/Byte2ObjectArrayMap; + FIELD field_458 textures Ljava/util/List; + FIELD field_459 textureCount I + METHOD (Ljava/util/List;IF)V + ARG 1 textures + ARG 2 id diff --git a/mappings/tk/valoeghese/fc0/tile/Tile.mapping b/mappings/tk/valoeghese/fc0/tile/Tile.mapping index 9f547c7..abd1447 100644 --- a/mappings/tk/valoeghese/fc0/tile/Tile.mapping +++ b/mappings/tk/valoeghese/fc0/tile/Tile.mapping @@ -5,7 +5,7 @@ CLASS tk/valoeghese/fc0/class_14 tk/valoeghese/fc0/tile/Tile FIELD field_211 TALLGRASS Ltk/valoeghese/fc0/class_14; FIELD field_212 BRICKS Ltk/valoeghese/fc0/class_14; FIELD field_213 STONE_BRICKS Ltk/valoeghese/fc0/class_14; - FIELD field_27 index B + FIELD field_27 id B FIELD field_28 textureX I FIELD field_299 translationKey Ljava/lang/String; FIELD field_29 AIR Ltk/valoeghese/fc0/class_14; @@ -14,7 +14,7 @@ CLASS tk/valoeghese/fc0/class_14 tk/valoeghese/fc0/tile/Tile FIELD field_302 ICE Ltk/valoeghese/fc0/class_14; FIELD field_303 GALENA Ltk/valoeghese/fc0/class_14; FIELD field_30 solid Z - FIELD field_31 BY_INDEX [Ltk/valoeghese/fc0/class_14; + FIELD field_31 BY_ID [Ltk/valoeghese/fc0/class_14; FIELD field_32 textureY I FIELD field_33 STONE Ltk/valoeghese/fc0/class_14; FIELD field_34 shouldRender Z @@ -23,10 +23,13 @@ CLASS tk/valoeghese/fc0/class_14 tk/valoeghese/fc0/tile/Tile FIELD field_37 LOG Ltk/valoeghese/fc0/class_14; FIELD field_38 WATER Ltk/valoeghese/fc0/class_14; FIELD field_39 SAND Ltk/valoeghese/fc0/class_14; - FIELD field_400 key Ljava/lang/String; + FIELD field_400 texture Ljava/lang/String; + FIELD field_461 luminance I + FIELD field_462 TORCH Ltk/valoeghese/fc0/class_14; + FIELD field_463 PLANKS Ltk/valoeghese/fc0/class_14; METHOD (Ljava/lang/String;IF)V - ARG 1 id - ARG 2 index + ARG 1 texture + ARG 2 id METHOD method_164 useCrossModel ()Ltk/valoeghese/fc0/class_14; METHOD method_165 hasCrossModel ()Z METHOD method_237 getFriction ()F @@ -44,7 +47,7 @@ CLASS tk/valoeghese/fc0/class_14 tk/valoeghese/fc0/tile/Tile METHOD method_32 getTextureY (IB)I ARG 1 face ARG 2 meta - METHOD method_33 isSolid (Z)Z + METHOD method_33 isSolid (ZLtk/valoeghese/fc0/class_14;)Z ARG 1 renderingWater METHOD method_332 getDrop (Ljava/util/Random;B)Ltk/valoeghese/fc0/class_92; ARG 1 random @@ -58,3 +61,9 @@ CLASS tk/valoeghese/fc0/class_14 tk/valoeghese/fc0/tile/Tile METHOD method_35 getTextureX (IB)I ARG 1 face ARG 2 meta + METHOD method_424 getLuminance ()I + METHOD method_428 setLuminance (I)Ltk/valoeghese/fc0/class_14; + ARG 1 luminance + METHOD method_429 (Ltk/valoeghese/fc0/class_8;Ltk/valoeghese/fc0/class_3;)V + ARG 1 world + ARG 2 pos diff --git a/mappings/tk/valoeghese/fc0/tile/TorchTile.mapping b/mappings/tk/valoeghese/fc0/tile/TorchTile.mapping new file mode 100644 index 0000000..084cd99 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/tile/TorchTile.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/class_136 tk/valoeghese/fc0/tile/TorchTile diff --git a/mappings/tk/valoeghese/fc0/world/ChunkGenerator.mapping b/mappings/tk/valoeghese/fc0/world/ChunkGenerator.mapping index 18b1a6b..c7e3c8b 100644 --- a/mappings/tk/valoeghese/fc0/world/ChunkGenerator.mapping +++ b/mappings/tk/valoeghese/fc0/world/ChunkGenerator.mapping @@ -1,6 +1,5 @@ CLASS tk/valoeghese/fc0/class_9 tk/valoeghese/fc0/world/ChunkGenerator FIELD field_164 ecozoneNoise Ltk/valoeghese/fc0/class_41; - FIELD field_22 defaultSeed J FIELD field_23 noise Ltk/valoeghese/fc0/class_41; FIELD field_24 ridgedNoise Ltk/valoeghese/fc0/class_41; FIELD field_25 sandNoise Ltk/valoeghese/fc0/class_41; @@ -10,8 +9,6 @@ CLASS tk/valoeghese/fc0/class_9 tk/valoeghese/fc0/world/ChunkGenerator METHOD method_117 calculateEcozone (DD)Ltk/valoeghese/fc0/class_46; ARG 0 temperature ARG 2 precipitation - METHOD method_151 createNoise (J)V - ARG 0 seed METHOD method_25 evalNoise (DD)D ARG 0 x ARG 2 y diff --git a/mappings/tk/valoeghese/fc0/world/World.mapping b/mappings/tk/valoeghese/fc0/world/World.mapping index bc506e9..ea7013e 100644 --- a/mappings/tk/valoeghese/fc0/world/World.mapping +++ b/mappings/tk/valoeghese/fc0/world/World.mapping @@ -8,6 +8,7 @@ CLASS tk/valoeghese/fc0/class_6 tk/valoeghese/fc0/world/World FIELD field_281 chunkFactory Ltk/valoeghese/fc0/class_47; FIELD field_282 chunkStorage Ltk/valoeghese/fc0/class_56; FIELD field_283 saveExecutor Ljava/util/concurrent/ExecutorService; + FIELD field_449 chunkGenerator Ltk/valoeghese/fc0/class_9; METHOD (Ltk/valoeghese/fc0/class_56;JILtk/valoeghese/fc0/class_47;)V ARG 1 chunkStorage ARG 2 seed @@ -23,7 +24,7 @@ CLASS tk/valoeghese/fc0/class_6 tk/valoeghese/fc0/world/World METHOD method_216 getStoredChunk (II)Ltk/valoeghese/fc0/class_4; ARG 1 x ARG 2 z - METHOD method_8 generateSpawn (Ltk/valoeghese/fc0/class_33;)V + METHOD method_419 getEcozone (DD)Ltk/valoeghese/fc0/class_46; CLASS class_79 GeneratingTileView FIELD field_285 world Ltk/valoeghese/fc0/class_6; METHOD (Ltk/valoeghese/fc0/class_6;)V diff --git a/mappings/tk/valoeghese/fc0/world/ecozone/ColdWoodlandEcozone.mapping b/mappings/tk/valoeghese/fc0/world/ecozone/ColdWoodlandEcozone.mapping new file mode 100644 index 0000000..bc0aa26 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/ecozone/ColdWoodlandEcozone.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/class_127 tk/valoeghese/fc0/world/ecozone/ColdWoodlandEcozone diff --git a/mappings/tk/valoeghese/fc0/world/ecozone/DesertEcozone.mapping b/mappings/tk/valoeghese/fc0/world/ecozone/DesertEcozone.mapping new file mode 100644 index 0000000..c5d8304 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/ecozone/DesertEcozone.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/class_128 tk/valoeghese/fc0/world/ecozone/DesertEcozone diff --git a/mappings/tk/valoeghese/fc0/world/Ecozone.mapping b/mappings/tk/valoeghese/fc0/world/ecozone/Ecozone.mapping similarity index 83% rename from mappings/tk/valoeghese/fc0/world/Ecozone.mapping rename to mappings/tk/valoeghese/fc0/world/ecozone/Ecozone.mapping index c48a057..4934cb5 100644 --- a/mappings/tk/valoeghese/fc0/world/Ecozone.mapping +++ b/mappings/tk/valoeghese/fc0/world/ecozone/Ecozone.mapping @@ -1,4 +1,4 @@ -CLASS tk/valoeghese/fc0/class_46 tk/valoeghese/fc0/world/Ecozone +CLASS tk/valoeghese/fc0/class_46 tk/valoeghese/fc0/world/ecozone/Ecozone FIELD field_150 groundTile B FIELD field_153 TEMPERATE_GRASSLAND Ltk/valoeghese/fc0/class_46; FIELD field_154 id Ljava/lang/String; @@ -11,6 +11,7 @@ CLASS tk/valoeghese/fc0/class_46 tk/valoeghese/fc0/world/Ecozone FIELD field_163 DESERT Ltk/valoeghese/fc0/class_46; FIELD field_189 generators Ljava/util/Map; FIELD field_304 COLD_WOODLAND Ltk/valoeghese/fc0/class_46; + FIELD field_435 snowy Z METHOD (Ljava/lang/String;)V ARG 1 id METHOD (Ljava/lang/String;Ltk/valoeghese/fc0/class_14;Ltk/valoeghese/fc0/class_14;)V @@ -18,6 +19,8 @@ CLASS tk/valoeghese/fc0/class_46 tk/valoeghese/fc0/world/Ecozone ARG 2 ground ARG 3 beach METHOD method_148 getGenerators ()Ljava/util/Set; - METHOD method_149 addGenerator (Ltk/valoeghese/fc0/class_10;Ltk/valoeghese/fc0/class_51;)Ltk/valoeghese/fc0/class_46; + METHOD method_149 addGenerator (Ltk/valoeghese/fc0/class_10;Ltk/valoeghese/fc0/class_51;)V ARG 1 generator ARG 2 config + METHOD method_387 addSnow ()V + METHOD method_388 isSnowy ()Z diff --git a/mappings/tk/valoeghese/fc0/world/ecozone/TemperateGrasslandEcozone.mapping b/mappings/tk/valoeghese/fc0/world/ecozone/TemperateGrasslandEcozone.mapping new file mode 100644 index 0000000..4392f2e --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/ecozone/TemperateGrasslandEcozone.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/class_129 tk/valoeghese/fc0/world/ecozone/TemperateGrasslandEcozone diff --git a/mappings/tk/valoeghese/fc0/world/ecozone/TemperateRainforestEcozone.mapping b/mappings/tk/valoeghese/fc0/world/ecozone/TemperateRainforestEcozone.mapping new file mode 100644 index 0000000..bfb9fd1 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/ecozone/TemperateRainforestEcozone.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/class_131 tk/valoeghese/fc0/world/ecozone/TemperateRainforestEcozone diff --git a/mappings/tk/valoeghese/fc0/world/ecozone/TemperateWoodlandEcozone.mapping b/mappings/tk/valoeghese/fc0/world/ecozone/TemperateWoodlandEcozone.mapping new file mode 100644 index 0000000..4a7782e --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/ecozone/TemperateWoodlandEcozone.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/class_134 tk/valoeghese/fc0/world/ecozone/TemperateWoodlandEcozone diff --git a/mappings/tk/valoeghese/fc0/world/ecozone/TropicalGrasslandEcozone.mapping b/mappings/tk/valoeghese/fc0/world/ecozone/TropicalGrasslandEcozone.mapping new file mode 100644 index 0000000..3e17f58 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/ecozone/TropicalGrasslandEcozone.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/class_130 tk/valoeghese/fc0/world/ecozone/TropicalGrasslandEcozone diff --git a/mappings/tk/valoeghese/fc0/world/ecozone/TropicalRainforestEcozone.mapping b/mappings/tk/valoeghese/fc0/world/ecozone/TropicalRainforestEcozone.mapping new file mode 100644 index 0000000..7a60236 --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/ecozone/TropicalRainforestEcozone.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/class_132 tk/valoeghese/fc0/world/ecozone/TropicalRainforestEcozone diff --git a/mappings/tk/valoeghese/fc0/world/ecozone/TundraEcozone.mapping b/mappings/tk/valoeghese/fc0/world/ecozone/TundraEcozone.mapping new file mode 100644 index 0000000..08c85fe --- /dev/null +++ b/mappings/tk/valoeghese/fc0/world/ecozone/TundraEcozone.mapping @@ -0,0 +1 @@ +CLASS tk/valoeghese/fc0/class_133 tk/valoeghese/fc0/world/ecozone/TundraEcozone diff --git a/mappings/tk/valoeghese/fc0/world/generator/TreeGeneratorConfig.mapping b/mappings/tk/valoeghese/fc0/world/generator/TreeGeneratorConfig.mapping index 7c3e13e..a6a9719 100644 --- a/mappings/tk/valoeghese/fc0/world/generator/TreeGeneratorConfig.mapping +++ b/mappings/tk/valoeghese/fc0/world/generator/TreeGeneratorConfig.mapping @@ -11,8 +11,5 @@ CLASS tk/valoeghese/fc0/class_55 tk/valoeghese/fc0/world/generator/TreeGenerator ARG 2 treeDensity ARG 3 baseHeight ARG 4 heightSpread - METHOD method_156 getTreeCount (II)I - ARG 1 x - ARG 2 z METHOD method_157 getTreeHeight (Ljava/util/Random;)I ARG 1 random diff --git a/matches/0.2.2-0.2.3.match b/matches/0.2.2-0.2.3.match new file mode 100644 index 0000000..43d21e8 --- /dev/null +++ b/matches/0.2.2-0.2.3.match @@ -0,0 +1,1893 @@ +Matches saved 2020-09-06T14:29:03.590899500+03:00[Europe/Helsinki], input files: + a: + 686798 UPnjoUjo8tKHZFQYMdajOIFu/jAfyGDNMW9/XjYY7bs= 2fc0f18-0.2.2.jar + b: + 704471 PzpBoLBRLMujE2XSMpzU8jnpp0NLkYufNyJCOp9kORE= 2fc0f18-0.2.3.jar + cp: + cp a: + cp b: +c LA; LC; + m (Ltk/valoeghese/fc0/client/a;)V (Ltk/valoeghese/fc0/client/a;)V + ma 0 0 + m a(F)V a(F)V + ma 0 0 + m a(DD)V a(DD)V + ma 0 0 + ma 1 1 + m a()V a()V + m a(LM;)V a(LO;)V + ma 0 0 + m b()V b()V + f a;;Ltk/valoeghese/fc0/client/a; a;;Ltk/valoeghese/fc0/client/a; +c LB; LD; + m (Ltk/valoeghese/fc0/client/a;)V (Ltk/valoeghese/fc0/client/a;)V + ma 0 0 + m a(LM;)V a(LO;)V + ma 0 0 + m a(DD)V a(DD)V + ma 0 0 + ma 1 1 +c LC; LE; + m (Ltk/valoeghese/fc0/client/a;Ly;)V (Ltk/valoeghese/fc0/client/a;LA;)V + ma 0 0 + ma 1 1 + m b()V b()V + m a(F)V a(F)V + ma 0 0 + m a(DD)V a(DD)V + ma 0 0 + ma 1 1 + m a()V a()V + m a(LM;)V a(LO;)V + ma 0 0 + f a;;LN; a;;LP; + f a;;Ly; a;;LA; +c LD; LF; + m (Ltk/valoeghese/fc0/client/a;Ly;)V (Ltk/valoeghese/fc0/client/a;LA;)V + ma 0 0 + ma 1 1 + m b()V b()V + m a(F)V a(F)V + ma 0 0 + m a(DD)V a(DD)V + ma 0 0 + ma 1 1 + m a()V a()V + m a(LM;)V a(LO;)V + ma 0 0 + f a;;Lq; a;;Ls; + f a;;Ly; a;;LA; +c LE; LG; + m a()V a()V + m b()V b()V + m a()J a()J + m ()V ()V + f a;;Lit/unimi/dsi/fastutil/ints/IntList; a;;Lit/unimi/dsi/fastutil/ints/IntList; + f a;;J a;;J + f b;;J b;;J +c LF; LH; + m ()V ()V + m a(Lorg/joml/Vector3f;)V a(Lorg/joml/Vector3f;)V + ma 0 0 + m a(F)V a(F)V + ma 0 0 + m b(F)V b(F)V + ma 0 0 + m b()V b()V + m a(LJ;Lorg/joml/Matrix4f;)V a(LL;Lorg/joml/Matrix4f;)V + ma 0 0 + ma 1 1 + m a()F a()F + m a(FFF)V a(FFF)V + ma 0 0 + ma 1 1 + ma 2 2 + m a()V a()V + m a()Lorg/joml/Vector3f; a()Lorg/joml/Vector3f; + m ()V ()V + f a;;Lorg/joml/Matrix4f; a;;Lorg/joml/Matrix4f; + f a;;Lorg/joml/Vector3f; a;;Lorg/joml/Vector3f; + f a;;F a;;F + f b;;F b;;F + f c;;F c;;F +c LG; LI; + m (Ljava/lang/String;[LH;)V (Ljava/lang/String;[LJ;)V + ma 0 0 + ma 1 1 + f a;;Ljava/lang/String; a;;Ljava/lang/String; + f a;;Ljava/awt/image/BufferedImage; a;;Ljava/awt/image/BufferedImage; + f a;;Ljava/util/Map; a;;Ljava/util/Map; +c LH; LJ; + m ()V ()V + f a;;Ljava/lang/String; a;;Ljava/lang/String; + f a;;Ljava/awt/image/BufferedImage; a;;Ljava/awt/image/BufferedImage; +c LI; LK; + m (II)V (II)V + ma 0 0 + ma 1 1 + m a()I a()I + m b()I b()I + m (IIB)V (IIB)V + ma 0 0 + ma 1 1 + ma 2 2 + f a;;I a;;I + f b;;I b;;I +c LJ; LL; + m (ILL;)V (ILN;)V + ma 0 0 + ma 1 1 + m b(FFFFFF)I b(FFFFFF)I + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + ma 5 5 + m b(III)V b(III)V + ma 0 0 + ma 1 1 + ma 2 2 + m a()V a()V + m b()V b()V + m a(Lorg/joml/Matrix4f;)V a(Lorg/joml/Matrix4f;)V + ma 0 0 + m a()LL; a()LN; + f a;;Lit/unimi/dsi/fastutil/floats/FloatList; a;;Lit/unimi/dsi/fastutil/floats/FloatList; + f a;;I a;;I + f a;;Lit/unimi/dsi/fastutil/ints/IntList; a;;Lit/unimi/dsi/fastutil/ints/IntList; + f a;;Ljava/util/List; a;;Ljava/util/List; + f b;;I b;;I + f a;;LL; a;;LN; +c LK; LM; + m (II)V (II)V + ma 0 0 + ma 1 1 + m (IIB)V (IIB)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(LK;)I a(LM;)I + ma 0 0 + m b(LK;)I b(LM;)I + ma 0 0 + f a;;I a;;I + f b;;I b;;I +c LL; LN; + m (Ljava/lang/String;Ljava/lang/String;)V (Ljava/lang/String;Ljava/lang/String;)V + ma 0 0 + ma 1 1 + m a(Ljava/lang/String;I)V a(Ljava/lang/String;I)V + ma 0 0 + ma 1 1 + m a(Ljava/lang/String;F)V a(Ljava/lang/String;F)V + ma 0 0 + ma 1 1 + m a(Ljava/lang/String;Lorg/joml/Matrix4f;)V a(Ljava/lang/String;Lorg/joml/Matrix4f;)V + ma 0 0 + ma 1 1 + m a()V a()V + m b()V b()V + f a;;I a;;I +c LM; LO; + m (II)V (II)V + ma 0 0 + ma 1 1 + m a()Z a()Z + m a()V a()V + m b()V b()V + m invoke(JII)V invoke(JII)V + ma 0 0 + ma 1 1 + ma 2 2 + m a()[F a()[F + f a;;J a;;J + f a;;I a;;I + f b;;I b;;I + f a;;F a;;F +c LN; LP; + m (I)V (I)V + ma 0 0 + m a(FFFF)I a(FFFF)I + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(FFFFF)I a(FFFFF)I + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(III)V a(III)V + ma 0 0 + ma 1 1 + ma 2 2 + m b()V b()V + m c()V c()V + m a_()V a_()V + f a;;Lit/unimi/dsi/fastutil/floats/FloatList; a;;Lit/unimi/dsi/fastutil/floats/FloatList; + f a;;I a;;I + f a;;Lit/unimi/dsi/fastutil/ints/IntList; a;;Lit/unimi/dsi/fastutil/ints/IntList; + f a;;Ljava/util/List; a;;Ljava/util/List; + f b;;I b;;I + f a;;LL; a;;LN; + f c;;I c;;I +c LO; LQ; + m (II)V (II)V + ma 0 0 + ma 1 1 + m toString()Ljava/lang/String; toString()Ljava/lang/String; + m a(LO;)I a(LQ;)I + ma 0 0 + m (IIB)V (IIB)V + ma 0 0 + ma 1 1 + ma 2 2 + m b(LO;)I b(LQ;)I + ma 0 0 + f a;;I a;;I + f b;;I b;;I +c LP; LR; + m ()V ()V + m b(I)V b(I)V + ma 0 0 + m a(I)Z a(I)Z + ma 0 0 + m a_()V a_()V + m b()V b()V + f a;;Ljava/util/List; a;;Ljava/util/List; + f a;;Lit/unimi/dsi/fastutil/ints/IntSet; a;;Lit/unimi/dsi/fastutil/ints/IntSet; +c LQ; LS; + m a_()V a_()V + m b()V b()V +c LR; LT; + m a(LM;)V a(LO;)V + ma 0 0 + m a(J)V a(J)V + ma 0 0 + m b(J)V b(J)V + ma 0 0 + m a(I)V a(I)V + ma 0 0 + m a()V a()V + m b()V b()V + m a(JII)V a(JII)V + ma 0 0 + ma 1 1 + ma 2 2 +c LS; LU; + m ()V ()V + m a(Ljava/lang/String;)Ljava/net/URL; a(Ljava/lang/String;)Ljava/net/URL; + ma 0 0 + m a(Ljava/lang/String;)Ljava/io/InputStream; a(Ljava/lang/String;)Ljava/io/InputStream; + ma 0 0 + m a(Ljava/lang/String;)Ljava/lang/String; a(Ljava/lang/String;)Ljava/lang/String; + ma 0 0 +c LT; LV; + m a(Ljava/awt/image/BufferedImage;)I a(Ljava/awt/image/BufferedImage;)I + ma 0 0 +c LU; LZ; + m (Lao;II[B[B)V (Lau;II[B[B)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(IIIB)V b(IIIB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(I)Z a(I)Z + ma 0 0 + m a(II)LaW; a(II)Lbl; + ma 0 0 + ma 1 1 + m b(II)LaW; b(II)Lbl; + ma 0 0 + ma 1 1 + m c(II)LaW; c(II)Lbl; + ma 0 0 + ma 1 1 + m d(II)LaW; d(II)Lbl; + ma 0 0 + ma 1 1 + m b()V a()V + m a()Ls; a()Lu; + m a(II)Lan; a(II)Lat; + ma 0 0 + ma 1 1 + m a()V b()V + f a;;Ls; a;;Lu; +c LV; Laa; + m (ILtk/valoeghese/fc0/client/a;)V (ILtk/valoeghese/fc0/client/a;)V + ma 0 0 + ma 1 1 + m a(I)LaN; a(I)Lbb; + ma 0 0 + m a(I)V a(I)V + ma 0 0 + m a(ILaN;)V a(ILbb;)V + ma 0 0 + ma 1 1 + m b(I)V b(I)V + ma 0 0 + f a;;Ltk/valoeghese/fc0/client/a; a;;Ltk/valoeghese/fc0/client/a; +c LW; Lab; + m (LF;Ltk/valoeghese/fc0/client/a;Z)V (LH;Ltk/valoeghese/fc0/client/a;Z)V + ma 0 0 + ma 1 1 + ma 2 2 + m a()LF; a()LH; + m a(Lah;)V a(Lan;)V + ma 0 0 + m a(DDD)Z a(DDD)Z + ma 0 0 + ma 1 1 + ma 2 2 + m a(D)Lad; a(D)Lai; + ma 0 0 + m a()V a()V + m a(Ltk/valoeghese/fc0/client/a;I)LaL; a(Ltk/valoeghese/fc0/client/a;I)LaZ; + ma 0 0 + ma 1 1 + m ()V ()V + f a;;LF; a;;LH; + f a;;Lav; a;;LaH; + f a;;D a;;D + f b;;D b;;D +c LX; Lac; + m (LaP;JI)V (Lbe;JI)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(IILap;)Lan; a(IILav;)Lat; + ma 0 0 + ma 1 1 + ma 2 2 + m a()V a()V + m a()Ljava/util/List; a()Ljava/util/List; + m a(Lan;)V a(Lat;)V + ma 0 0 + m b()V b()V + m a(LU;)F a(LZ;)F + ma 0 0 + f a;;Lab; a;;Lag; + f a;;Ljava/util/Queue; a;;Ljava/util/Queue; + f a;;Ljava/util/List; a;;Ljava/util/List; + f a;;Z a;;Z +c LY; Lad; + m a(I)Z a(I)Z + ma 0 0 + m a(II)LaW; a(II)Lbl; + ma 0 0 + ma 1 1 + m b(II)LaW; b(II)Lbl; + ma 0 0 + ma 1 1 + m c(II)LaW; c(II)Lbl; + ma 0 0 + ma 1 1 + m d(II)LaW; d(II)Lbl; + ma 0 0 + ma 1 1 +c LZ; Lae; + m (Ljava/lang/String;Ljava/lang/String;)V (Ljava/lang/String;Ljava/lang/String;)V + ma 0 0 + ma 1 1 + m (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + ma 0 0 + ma 1 1 + ma 2 2 + m a()V a()V + m a(Ljava/lang/String;)Ljava/lang/String; a(Ljava/lang/String;)Ljava/lang/String; + ma 0 0 + m ()V ()V + f a;;Ljava/lang/String; a;;Ljava/lang/String; + f b;;Ljava/lang/String; b;;Ljava/lang/String; + f c;;Ljava/lang/String; c;;Ljava/lang/String; + f a;;Ljava/util/Properties; a;;Ljava/util/Properties; + f a;;LZ; a;;Lae; + f b;;LZ; b;;Lae; +c La; Lb; + m (Ljava/lang/String;IZ)V (Ljava/lang/String;IZ)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(I)V a(I)V + ma 0 0 + m a()Z a()Z + m b()Z b()Z + m toString()Ljava/lang/String; toString()Ljava/lang/String; + m a(I)Ljava/util/List; a(I)Ljava/util/List; + ma 0 0 + m b(I)Ljava/util/List; b(I)Ljava/util/List; + ma 0 0 + f a;;Z a;;Z + f b;;Z b;;Z + f a;;I a;;I + f c;;Z c;;Z + f a;;Ljava/lang/String; a;;Ljava/lang/String; +c LaA; LaP; +c LaB; LaQ; + m ()V ()V + m a(Law;LaC;IILjava/util/Random;)V a(LaB;LaR;IILjava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(Law;LaA;IILjava/util/Random;)V a(LaB;LaP;IILjava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 +c LaC; LaR; + m (II[LaW;)V (II[Lbl;)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(Ljava/util/Random;)LaW; a(Ljava/util/Random;)Lbl; + ma 0 0 + f a;;[LaW; a;;[Lbl; +c LaD; LaS; + m (III)V (III)V + ma 0 0 + ma 1 1 + ma 2 2 + m a()I a()I + m a(Ljava/util/Random;)I a(Ljava/util/Random;)I + ma 0 0 + f a;;I a;;I + f b;;I b;;I + f c;;I c;;I +c LaE; LaT; + m ()V ()V + m a(Law;LaI;IILjava/util/Random;)V a(LaB;LaX;IILjava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(Law;LaA;IILjava/util/Random;)V a(LaB;LaP;IILjava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 +c LaF; LaU; + m (II)V (II)V + ma 0 0 + ma 1 1 + m a(Ljava/util/Random;)I a(Ljava/util/Random;)I + ma 0 0 + f a;;I a;;I + f b;;I b;;I +c LaG; LaV; + m ()V ()V + m a(Law;LaD;IILjava/util/Random;)V a(LaB;LaS;IILjava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(Law;LaA;IILjava/util/Random;)V a(LaB;LaP;IILjava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m ()V ()V + f a;;LaD; a;;LaS; +c LaH; LaW; + m ()V ()V + m a(Law;LaI;IILjava/util/Random;)V a(LaB;LaX;IILjava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(Law;LaA;IILjava/util/Random;)V a(LaB;LaP;IILjava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 +c LaI; LaX; + m (IF)V (IF)V + ma 0 0 + ma 1 1 + m (IFII)V (IFII)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(II)I a(LaB;II)I + ma 0 1 + ma 1 2 + m a(Ljava/util/Random;)I a(Ljava/util/Random;)I + ma 0 0 + f a;;I a;;I + f a;;F a;;F + f b;;I b;;I + f c;;I c;;I +c LaJ; LaY; + m ()V ()V + m a(ILaN;)V a(ILbb;)V + ma 0 0 + ma 1 1 + m a(I)Ljava/util/List; a(I)Ljava/util/List; + ma 0 0 + m a()V a()V + m b(I)Ljava/util/List; b(I)Ljava/util/List; + ma 0 0 + m ()V ()V + f a;;Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; a;;Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; + f a;;LaJ; a;;LaY; +c LaK; Lbc; + m (Ljava/lang/String;I)V (Ljava/lang/String;I)V + ma 1 1 + m a(Ljava/util/function/Function;)V a(Ljava/util/function/Function;)V + ma 0 0 + m a()I a()I + m b()I b()I + m a(Ljava/lang/String;)LaK; a(Ljava/lang/String;)Lbc; + ma 0 0 + m toString()Ljava/lang/String; toString()Ljava/lang/String; + m ()V ()V + f a;;I a;;I + f b;;Ljava/lang/String; b;;Ljava/lang/String; + f a;;Ljava/lang/String; a;;Ljava/lang/String; + f b;;I b;;I + f c;;I c;;I + f a;;[LaK; a;;[Lbc; + f a;;LaK; b;;Lbc; +c LaL; LaZ; + m (I)V (I)V + ma 0 0 + m a()LaN; a()Lbb; + m a(I)LaN; a(I)Lbb; + ma 0 0 + m a(ILaN;)V a(ILbb;)V + ma 0 0 + ma 1 1 + m b(I)V b(I)V + ma 0 0 + m a(LaN;)Z a(Lbb;)Z + ma 0 0 + m a(I)V a(I)V + ma 0 0 + m a()I a()I + m b()I b()I + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + m a()V a()V + f a;;[LaN; a;;[Lbb; + f a;;I a;;I + f b;;I b;;I + f c;;I c;;I +c LaM; Lba; + m ([LaN;)V ([Lbb;)V + ma 0 0 + m hasNext()Z hasNext()Z + m a()LaN; a()Lbb; + m next()Ljava/lang/Object; next()Ljava/lang/Object; + f a;;[LaN; a;;[Lbb; + f a;;I a;;I +c LaN; Lbb; + m (LaW;)V (Lbl;)V + ma 0 0 + m (LaK;)V (Lbc;)V + ma 0 0 + m (LaW;I)V (Lbl;I)V + ma 0 0 + ma 1 1 + m (LaN;)V (Lbb;)V + ma 0 0 + m (IBI)V (IBI)V + ma 0 0 + ma 1 1 + ma 2 2 + m a()Z a()Z + m a()LaW; a()Lbl; + m a()LaK; a()Lbc; + m a()B a()B + m a()I a()I + m a()V a()V + m a(I)V a(I)V + ma 0 0 + m a(LaL;I)V a(LaZ;I)V + ma 0 0 + ma 1 1 + m b()I b()I + m a()[Ljava/lang/String; a()[Ljava/lang/String; + f a;;Z a;;Z + f a;;LaW; a;;Lbl; + f a;;LaK; a;;Lbc; + f a;;B a;;B + f b;;I b;;I + f a;;LaL; a;;LaZ; + f a;;I a;;I +c LaO; Lbd; + m (ZLjava/util/function/IntFunction;)V (ZLjava/util/function/IntFunction;)V + ma 0 0 + ma 1 1 + m b()V b()V + m a(Lat;LaP;)V a(Laz;Lbe;)V + ma 0 0 + ma 1 1 + m a(Lat;Lah;LaP;)V a(Laz;Lan;Lbe;)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(LaP;)V a(Lbe;)V + ma 0 0 + m b(LaP;)V b(Lbe;)V + ma 0 0 + m a(DDD)Z a(DDD)Z + ma 0 0 + ma 1 1 + ma 2 2 + m a()V a()V + m a(DDD)V a(DDD)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(Lah;)V a(Lan;)V + ma 0 0 + m a()Z a()Z + m b()Z b()Z + m c()Z d()Z + m a()Lai; a()Lao; + m a()F a()F + m a()D a()D + m a()I a()I + m b()I b()I + m a()Lah; a()Lan; + m a()LaL; a()LaZ; + f a;;Lag; a;;Lam; + f a;;Lat; a;;Laz; + f b;;Lag; b;;Lam; + f a;;Z a;;Z + f a;;Lan; a;;Lat; + f a;;J a;;J + f b;;Z b;;Z + f a;;LaL; a;;LaZ; + f a;;D a;;D +c LaP; Lbe; + m (Ljava/lang/String;J)V (Ljava/lang/String;J)V + ma 0 0 + ma 1 1 + m a()J a()J + m a(Ljava/util/Iterator;)V a(Ljava/util/Iterator;)V + ma 0 0 + m a(Ljava/util/Iterator;Ljava/util/Iterator;ILah;Lah;J)V a(Lbd;Ljava/util/Iterator;Ljava/util/Iterator;ILan;Lan;J)V + m a(Lbb;)[LaN; a(Lbr;)[Lbb; + ma 0 0 + m a(Lao;IILay;)Lan; a(LaC;Lau;IILaD;)Lat; + m a(Lan;)V a(Lat;)V + ma 0 0 + m a(Ljava/util/Iterator;JLah;Lah;Ljava/util/Iterator;I)V a(Ljava/util/Iterator;JLan;Lan;Lbd;Ljava/util/Iterator;I)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m b(Ljava/util/Iterator;)V b(Ljava/util/Iterator;)V + ma 0 0 + m ()V ()V + f a;;Ljava/io/File; a;;Ljava/io/File; + f b;;Ljava/io/File; b;;Ljava/io/File; + f a;;J a;;J + f a;;Lah; a;;Lan; + f b;;Lah; b;;Lan; + f a;;LaQ; a;;Laj; + f a;;Ljava/lang/Object; a;;Ljava/lang/Object; + f a;;[LaN; a;;[Lbb; +c LaQ; Laj; + m (Ljava/lang/Runnable;)V (Ljava/lang/Runnable;)V + ma 0 0 + m run()V run()V + m a()V a()V + m a()Z a()Z + m ()V ()V + f a;;Z a;;Z +c LaR; Lbf; + m (Ljava/lang/String;IF)V (Ljava/lang/String;IF)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(Ljava/util/function/Function;)V a(Ljava/util/function/Function;)V + ma 0 0 + m a(IB)I a(IB)I + ma 0 0 + ma 1 1 + m b(IB)I b(IB)I + ma 0 0 + ma 1 1 + f b;;Ljava/lang/String; b;;Ljava/lang/String; + f c;;I c;;I + f d;;I d;;I +c LaS; Lbg; + m (Ljava/lang/String;IF)V (Ljava/lang/String;IF)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(Ljava/util/function/Function;)V a(Ljava/util/function/Function;)V + ma 0 0 + m b(IB)I b(IB)I + ma 0 0 + ma 1 1 + m a(IB)I a(IB)I + ma 0 0 + ma 1 1 + f a;;Laj; a;;Lap; + f b;;Laj; b;;Lap; + f c;;Laj; c;;Lap; +c LaT; Lbh; + m (Ljava/lang/String;IF)V (Ljava/lang/String;IF)V + ma 0 0 + ma 1 1 + ma 2 2 + m a()F a()F +c LaU; Lbi; + m (Ljava/lang/String;IF)V (Ljava/lang/String;IF)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(Ljava/util/function/Function;)V a(Ljava/util/function/Function;)V + ma 0 0 + m a(IB)I a(IB)I + ma 0 0 + ma 1 1 + m b(IB)I b(IB)I + ma 0 0 + ma 1 1 + m a(Ljava/util/Random;B)LaN; a(Ljava/util/Random;B)Lbb; + ma 0 0 + ma 1 1 + f c;;I c;;I + f d;;I d;;I +c LaV; Lbk; + m (Ljava/lang/String;IFLjava/util/function/Predicate;)V (Ljava/lang/String;IFLjava/util/function/Predicate;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(Law;III)Z a(LaB;III)Z + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + f a;;Ljava/util/function/Predicate; a;;Ljava/util/function/Predicate; +c LaW; Lbl; + m (Ljava/lang/String;IF)V (Ljava/lang/String;IF)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(IB)I a(IB)I + ma 0 0 + ma 1 1 + m b(IB)I b(IB)I + ma 0 0 + ma 1 1 + m a(Ljava/util/function/Function;)V a(Ljava/util/function/Function;)V + ma 0 0 + m a()LaW; a()Lbl; + m b()LaW; b()Lbl; + m c()LaW; c()Lbl; + m d()LaW; d()Lbl; + m e()LaW; e()Lbl; + m a(Ljava/lang/String;)LaW; a(Ljava/lang/String;)Lbl; + ma 0 0 + m a(Ljava/util/Random;B)LaN; a(Ljava/util/Random;B)Lbb; + ma 0 0 + ma 1 1 + m a(Z)Z a(ZLbl;)Z + ma 0 0 + m a()Z c()Z + m b()Z d()Z + m c()Z e()Z + m a(Law;III)Z a(LaB;III)Z + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m d()Z f()Z + m e()Z g()Z + m a()F a()F + m toString()Ljava/lang/String; toString()Ljava/lang/String; + m a(LaW;)Z a(Lbl;)Z + ma 0 0 + m b(LaW;)Z b(Lbl;)Z + ma 0 0 + m c(LaW;)Z c(Lbl;)Z + ma 0 0 + m ()V ()V + f a;;B a;;B + f a;;I a;;I + f b;;I b;;I + f a;;F a;;F + f a;;Z a;;Z + f b;;Z c;;Z + f c;;Z d;;Z + f d;;Z e;;Z + f e;;Z f;;Z + f a;;Ljava/lang/String; a;;Ljava/lang/String; + f b;;Ljava/lang/String; b;;Ljava/lang/String; + f a;;[LaW; a;;[Lbl; + f a;;LaW; a;;Lbl; + f b;;LaW; b;;Lbl; + f c;;LaW; c;;Lbl; + f d;;LaW; d;;Lbl; + f e;;LaW; e;;Lbl; + f f;;LaW; f;;Lbl; + f g;;LaW; g;;Lbl; + f h;;LaW; h;;Lbl; + f i;;LaW; i;;Lbl; + f j;;LaW; j;;Lbl; + f k;;LaW; k;;Lbl; + f l;;LaW; l;;Lbl; + f m;;LaW; m;;Lbl; + f n;;LaW; n;;Lbl; +c LaX; Lbn; + m (Ljava/lang/String;IF)V (Ljava/lang/String;IF)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(Z)Z a(ZLbl;)Z + ma 0 0 + m a()Z c()Z +c LaY; Lbo; + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 +c LaZ; Lbp; + m ()V ()V + m a(Ljava/lang/String;)Lbb; a(Ljava/lang/String;)Lbr; + ma 0 0 + m a(Ljava/lang/String;)Lba; a(Ljava/lang/String;)Lbq; + ma 0 0 + m a(Ljava/lang/String;LaY;)V a(Ljava/lang/String;Lbo;)V + ma 0 0 + ma 1 1 + m a(Ljava/lang/String;)Z a(Ljava/lang/String;)Z + ma 0 0 + m a(Ljava/io/File;)V a(Ljava/io/File;)V + ma 0 0 + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + m a(Ljava/io/File;)LaZ; a(Ljava/io/File;)Lbp; + ma 0 0 + f a;;Ljava/util/Map; a;;Ljava/util/Map; +c Laa; Laf; + m (Ljava/lang/String;IIII)V (Ljava/lang/String;IIII)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a()I a()I + m b()I b()I + m c()I c()I + m a(Lai;)Lai; a(Lao;)Lao; + ma 0 0 + m apply(Ljava/lang/Object;)Ljava/lang/Object; apply(Ljava/lang/Object;)Ljava/lang/Object; + ma 0 0 + m ()V ()V + f a;;Laa; a;;Laf; + f b;;Laa; b;;Laf; + f c;;Laa; c;;Laf; + f d;;Laa; d;;Laf; + f e;;Laa; e;;Laf; + f f;;Laa; f;;Laf; + f a;;I a;;I + f b;;I b;;I + f c;;I c;;I + f a;;[Laa; a;;[Laf; +c Lab; Lag; + m (Lac;)V (Lah;)V + ma 0 0 + m add(Ljava/lang/Object;)Z add(Ljava/lang/Object;)Z + ma 0 0 + m add(ILjava/lang/Object;)V add(ILjava/lang/Object;)V + ma 0 0 + ma 1 1 + f a;;Lac; a;;Lah; +c Lac; Lah; + m apply(Ljava/lang/Object;)F apply(Ljava/lang/Object;)F + ma 0 0 +c Lad; Lai; + m (Lai;Laa;)V (Lao;Laf;)V + ma 0 0 + ma 1 1 + f a;;Lai; a;;Lao; + f a;;Laa; a;;Laf; +c Lae; Lak; + m (II)V (II)V + ma 0 0 + ma 1 1 + m a(Lae;)D a(Lak;)D + ma 0 0 + m a(Lae;)I a(Lak;)I + ma 0 0 + m a(II)I a(II)I + ma 0 0 + ma 1 1 + m equals(Ljava/lang/Object;)Z equals(Ljava/lang/Object;)Z + ma 0 0 + m hashCode()I hashCode()I + m toString()Ljava/lang/String; toString()Ljava/lang/String; + f a;;I a;;I + f b;;I b;;I +c Laf; Lal; + m a(FFFFF)F a(FFFFF)F + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(D)I a(D)I + ma 0 0 + m b(D)I b(D)I + ma 0 0 +c Lag; Lam; + m (DDD)V (DDD)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(D)Lag; a(D)Lam; + ma 0 0 + m b(D)Lag; b(D)Lam; + ma 0 0 + m a(Lah;)Lag; a(Lan;)Lam; + ma 0 0 + m a(DDD)Lag; a(DDD)Lam; + ma 0 0 + ma 1 1 + ma 2 2 + m b(DDD)Lag; b(DDD)Lam; + ma 0 0 + ma 1 1 + ma 2 2 + m c(DDD)Lag; c(DDD)Lam; + ma 0 0 + ma 1 1 + ma 2 2 +c Lah; Lan; + m (Lah;)V (Lan;)V + ma 0 0 + m (DDD)V (DDD)V + ma 0 0 + ma 1 1 + ma 2 2 + m a()D a()D + m b()D b()D + m c()D c()D + m a(DDD)Lah; a(DDD)Lan; + ma 0 0 + ma 1 1 + ma 2 2 + m toString()Ljava/lang/String; toString()Ljava/lang/String; + m ()V ()V + f a;;D a;;D + f b;;D b;;D + f c;;D c;;D + f a;;Lah; a;;Lan; +c Lai; Lao; + m (III)V (III)V + ma 0 0 + ma 1 1 + ma 2 2 + m (Lah;)V (Lan;)V + ma 0 0 + m a()Z a()Z + m a()Lai; a()Lao; + m a()Lae; a()Lak; + m a(III)Lai; a(III)Lao; + ma 0 0 + ma 1 1 + ma 2 2 + m toString()Ljava/lang/String; toString()Ljava/lang/String; + f a;;I a;;I + f b;;I b;;I + f c;;I c;;I +c Laj; Lap; + m (LI;)V (LK;)V + ma 0 0 + m (II)V (II)V + ma 0 0 + ma 1 1 + m a()I a()I + m b()I b()I + m equals(Ljava/lang/Object;)Z equals(Ljava/lang/Object;)Z + ma 0 0 + m hashCode()I hashCode()I + m toString()Ljava/lang/String; toString()Ljava/lang/String; + f a;;I a;;I + f b;;I b;;I +c Lak; Laq; + m (Ljava/util/Random;)V (Ljava/util/Random;)V + ma 0 0 + m a(DD)D a(DD)D + ma 0 0 + ma 1 1 + f a;;D a;;D + f b;;D b;;D +c Lal; Lar; + m (J)V (J)V + ma 0 0 + m a(DD)D a(DD)D + ma 0 0 + ma 1 1 + m a(IIDD)D a(IIDD)D + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(D)I a(D)I + ma 0 0 + m ()V ()V + f a;;[S a;;[S + f b;;[S b;;[S + f a;;[B a;;[B + f b;;[B b;;[B +c Lam; Las; + m (Ljava/util/Random;)V (Ljava/util/Random;)V + ma 0 0 + m a(DD)D a(DD)D + ma 0 0 + ma 1 1 +c Lan; Lat; + m (Lao;II[B[B)V (Lau;II[B[B)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(III)B a(III)B + ma 0 0 + ma 1 1 + ma 2 2 + m b(III)B b(III)B + ma 0 0 + ma 1 1 + ma 2 2 + m a(IIIB)V b(IIIB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m b(IIIB)V a(IIIB)V + ma 1 1 + m a(Lai;)Z a(Lao;)Z + ma 0 0 + m a(III)Z b(III)Z + ma 0 0 + ma 1 1 + ma 2 2 + m a(IILjava/util/function/Predicate;)I a(IILjava/util/function/Predicate;)I + ma 0 0 + ma 1 1 + ma 2 2 + m a(LaO;)V a(Lbd;)V + ma 0 0 + m b(LaO;)V b(Lbd;)V + ma 0 0 + m c(LaO;)V c(Lbd;)V + ma 0 0 + m a()V b()V + m a()Lae; a()Lak; + m a(LaZ;)V a(Lbp;)V + m b(II)Lan; b(II)Lat; + ma 0 0 + ma 1 1 + m a()Z a()Z + m a(Lao;Lay;LaZ;)Lan; a(Lau;LaD;Lbp;)Lat; + ma 0 0 + ma 1 1 + ma 2 2 + m a(III)I a(III)I + ma 0 0 + ma 1 1 + ma 2 2 + f a;;[B a;;[B + f b;;[B b;;[B + f a;;I a;;I + f b;;I b;;I + f a;;Lae; a;;Lak; + f c;;I c;;I + f d;;I d;;I + f a;;Lit/unimi/dsi/fastutil/ints/IntSet; a;;Lit/unimi/dsi/fastutil/ints/IntSet; + f a;;Ljava/util/List; a;;Ljava/util/List; + f a;;Lao; a;;Lau; + f a;;F a;;F + f a;;Z a;;Z + f b;;Z c;;Z + f c;;Z d;;Z +c Lao; Lau; + m a(IILap;)Lan; a(IILav;)Lat; + ma 0 0 + ma 1 1 + ma 2 2 + m a(II)Lan; a(II)Lat; + ma 0 0 + ma 1 1 + m a()J a()J +c Lap; Lav; + m a()[Lap; a()[Lav; + m (Ljava/lang/String;I)V (Ljava/lang/String;IIZ)V + ma 0 0 + ma 1 1 + m ()V ()V + f a;;Lap; a;;Lav; + f b;;Lap; b;;Lav; + f c;;Lap; c;;Lav; + f d;;Lap; d;;Lav; + f a;;[Lap; a;;[Lav; +c Laq; Law; + m (LaP;JILay;)V (Lbe;JILaD;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + mu a a(Lae;)V + m a()Ljava/util/Iterator; a()Ljava/util/Iterator; + m a(IILap;)Lan; a(IILav;)Lat; + ma 0 0 + ma 1 1 + ma 2 2 + m c(II)Lan; c(II)Lat; + ma 0 0 + ma 1 1 + m b(II)Lan; b(II)Lat; + ma 0 0 + ma 1 1 + m a(II)Lan; a(II)Lat; + ma 0 0 + ma 1 1 + m a(IIIB)V b(IIIB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m c(IIIB)V c(IIIB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(III)Z b(III)Z + ma 0 0 + ma 1 1 + ma 2 2 + m c(LaO;)V c(Lbd;)V + ma 0 0 + m b(Lae;)V a(Lak;)V + ma 0 0 + m a(Lan;)V a(Lat;)V + ma 0 0 + m b()V b()V + m a()J a()J + m a(II)J a(II)J + ma 0 0 + ma 1 1 + m a(Ljava/util/List;)V a(Ljava/util/List;)V + ma 0 0 + f a;;I a;;I + f b;;I b;;I + f a;;Lit/unimi/dsi/fastutil/longs/Long2ObjectMap; a;;Lit/unimi/dsi/fastutil/longs/Long2ObjectMap; + f a;;Ljava/util/Random; a;;Ljava/util/Random; + f a;;J a;;J + f a;;Law; a;;LaB; + f a;;Lay; a;;LaD; + f a;;LaP; a;;Lbe; + f a;;Ljava/util/concurrent/ExecutorService; a;;Ljava/util/concurrent/ExecutorService; +c Lar; Lax; + m ()V ()V + f a;;[I a;;[I +c Las; Lay; + m (Laq;)V (Law;)V + ma 0 0 + m a(III)Z b(III)Z + ma 0 0 + ma 1 1 + ma 2 2 + m b(II)Lan; b(II)Lat; + ma 0 0 + ma 1 1 + m c(IIIB)V c(IIIB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m (Laq;B)V (Law;B)V + ma 0 0 + ma 1 1 + f a;;Laq; a;;Law; +c Lat; Laz; + m b(Lae;)V a(Lak;)V + ma 0 0 +c Lau; LaA; + m a(Lai;)B a(Lao;)B + ma 0 0 + m a(Lai;B)V a(Lao;B)V + ma 0 0 + ma 1 1 + m a(II)I a(II)I + ma 0 0 + ma 1 1 + m a(Lai;)Z a(Lao;)Z + ma 0 0 + m b(Lai;)B b(Lao;)B + ma 0 0 + m a(IIIB)V b(IIIB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m c(LaO;)V c(Lbd;)V + ma 0 0 +c Lav; LaH; + m (Ljava/lang/String;)V (Ljava/lang/String;)V + ma 0 0 + m (Ljava/lang/String;LaW;LaW;)V (Ljava/lang/String;Lbl;Lbl;)V + ma 1 1 + ma 2 2 + m a(Laz;LaA;)Lav; a(LaO;LaP;)V + ma 0 0 + ma 1 1 + m a()Ljava/util/Set; a()Ljava/util/Set; + m toString()Ljava/lang/String; toString()Ljava/lang/String; + m ()V ()V + f a;;Ljava/lang/String; a;;Ljava/lang/String; + f a;;B a;;B + f b;;B b;;B + f a;;Ljava/util/Map; a;;Ljava/util/Map; + f a;;Lav; a;;LaH; + f b;;Lav; b;;LaH; + f c;;Lav; c;;LaH; + f d;;Lav; d;;LaH; + f e;;Lav; e;;LaH; + f f;;Lav; f;;LaH; + f g;;Lav; g;;LaH; + f h;;Lav; h;;LaH; +c Law; LaB; + m a(III)Z b(III)Z + ma 0 0 + ma 1 1 + ma 2 2 + m b(II)Lan; b(II)Lat; + ma 0 0 + ma 1 1 + m a(III)B a(III)B + ma 0 0 + ma 1 1 + ma 2 2 + m c(IIIB)V c(IIIB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(IILjava/util/function/Predicate;)I a(IILjava/util/function/Predicate;)I + ma 0 0 + ma 1 1 + ma 2 2 + m b(IIIB)V a(IIIB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m b(III)B b(III)B + ma 0 0 + ma 1 1 + ma 2 2 +c Lax; LaC; + mu a a(J)V + m a(Lay;Lao;II)Lan; a(LaD;Lau;II)Lat; + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(Law;Lan;Ljava/util/Random;)V a(LaB;Lat;Ljava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(DD)Lav; a(DD)LaH; + ma 0 0 + ma 1 1 + m b(DD)Lav; b(DD)LaH; + ma 0 0 + ma 1 1 + m a(DD)D b(DD)D + ma 0 0 + ma 1 1 + mu a ()V + f a;;Lak; a;;Laq; + f b;;Lak; b;;Laq; + f c;;Lak; c;;Laq; + f d;;Lak; d;;Laq; + fu a a;;J +c Lay; LaD; + m create(Lao;II[B[B)Lan; create(Lau;II[B[B)Lat; + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 +c Laz; LaO; + m (Ljava/lang/String;)V (Ljava/lang/String;)V + ma 0 0 + m equals(Ljava/lang/Object;)Z equals(Ljava/lang/Object;)Z + ma 0 0 + m hashCode()I hashCode()I + m toString()Ljava/lang/String; toString()Ljava/lang/String; + m a(Law;LaA;IILjava/util/Random;)V a(LaB;LaP;IILjava/util/Random;)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(Law;II)I a(LaB;II)I + ma 0 0 + ma 1 1 + ma 2 2 + m a(Law;IIIB)Z a(LaB;IIIB)Z + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(LaW;)Z a(Lbl;)Z + ma 0 0 + m ()V ()V + f a;;Ljava/lang/String; a;;Ljava/lang/String; + f a;;Laz; a;;LaO; + f b;;Laz; b;;LaO; + f c;;Laz; c;;LaO; + f d;;Laz; d;;LaO; +c Lb; Lc; + m (Ljava/lang/String;I)V (Ljava/lang/String;I)V + ma 0 0 + ma 1 1 + m invoke(JIIII)V invoke(JIIII)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m ()V ()V + f a;;Lb; a;;Lc; + f a;;Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; a;;Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; + f a;;[Lb; a;;[Lc; +c Lba; Lbq; + m ()V ()V + m a(B)V a(B)V + ma 0 0 + m a()I a()I + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 + m a(I)B a(I)B + ma 0 0 + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + f a;;Lit/unimi/dsi/fastutil/bytes/ByteList; a;;Lit/unimi/dsi/fastutil/bytes/ByteList; +c Lbb; Lbr; + m ()V ()V + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 + m a(B)V a(B)V + ma 0 0 + m a(I)V a(I)V + ma 0 0 + m a(J)V a(J)V + ma 0 0 + m a(D)V a(D)V + ma 0 0 + m a(Z)V a(Z)V + ma 0 0 + m a(I)B a(I)B + ma 0 0 + m a(I)I a(I)I + ma 0 0 + m a(I)J a(I)J + ma 0 0 + m a(I)D a(I)D + ma 0 0 + m a(I)Z a(I)Z + ma 0 0 + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + f a;;Ljava/util/List; a;;Ljava/util/List; +c Lbc; Lbs; + m a()[Lbc; a()[Lbs; + m (Ljava/lang/String;II)V (Ljava/lang/String;II)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(B)Lbc; a(B)Lbs; + ma 0 0 + m a()LaY; a()Lbo; + m ()V ()V + f a;;Lbc; a;;Lbs; + f b;;Lbc; b;;Lbs; + f c;;Lbc; c;;Lbs; + f d;;Lbc; d;;Lbs; + f e;;Lbc; e;;Lbs; + f f;;Lbc; f;;Lbs; + f g;;Lbc; g;;Lbs; + f h;;Lbc; h;;Lbs; + f i;;Lbc; i;;Lbs; + f j;;Lbc; j;;Lbs; + f k;;Lbc; k;;Lbs; + f l;;Lbc; l;;Lbs; + f m;;Lbc; m;;Lbs; + f n;;Lbc; n;;Lbs; + f o;;Lbc; o;;Lbs; + f a;;B a;;B + f a;;[Lbc; a;;[Lbs; +c Lbd; Lbt; + m ()V ()V + f a;;[I a;;[I +c Lbe; Lbu; + m ()V ()V + m a(D)V a(D)V + ma 0 0 + m a()I a()I + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + f a;;Lit/unimi/dsi/fastutil/doubles/DoubleList; a;;Lit/unimi/dsi/fastutil/doubles/DoubleList; +c Lbf; Lbv; + m ()V ()V + m a(F)V a(F)V + ma 0 0 + m a()I a()I + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + f a;;Lit/unimi/dsi/fastutil/floats/FloatList; a;;Lit/unimi/dsi/fastutil/floats/FloatList; +c Lbg; Lbw; + m ()V ()V + m a(I)V a(I)V + ma 0 0 + m a()I a()I + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + f a;;Lit/unimi/dsi/fastutil/ints/IntList; a;;Lit/unimi/dsi/fastutil/ints/IntList; +c Lbh; Lbx; + m ()V ()V + m a(J)V a(J)V + ma 0 0 + m a()I a()I + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + f a;;Lit/unimi/dsi/fastutil/longs/LongList; a;;Lit/unimi/dsi/fastutil/longs/LongList; +c Lbi; Lby; + m a(Ljava/io/DataInputStream;)LaZ; a(Ljava/io/DataInputStream;)Lbp; + ma 0 0 + m a(LaZ;Ljava/io/DataOutputStream;)V a(Lbp;Ljava/io/DataOutputStream;)V + ma 0 0 + ma 1 1 +c Lbj; Lbz; + m ()V ()V + f a;;[I a;;[I +c Lbk; LbA; + m ()V ()V + m a(S)V a(S)V + ma 0 0 + m a()I a()I + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + f a;;Lit/unimi/dsi/fastutil/shorts/ShortList; a;;Lit/unimi/dsi/fastutil/shorts/ShortList; +c Lbl; LbB; + m ()V ()V + m a(Ljava/lang/String;)V a(Ljava/lang/String;)V + ma 0 0 + m a()I a()I + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 + m iterator()Ljava/util/Iterator; iterator()Ljava/util/Iterator; + f a;;Ljava/util/List; a;;Ljava/util/List; +c Lbm; LbC; + m (Ljava/lang/String;)V (Ljava/lang/String;)V + ma 0 0 + m (Ljava/lang/String;Ljava/lang/Exception;)V (Ljava/lang/String;Ljava/lang/Exception;)V + ma 0 0 + ma 1 1 +c Lc; Ld; + m (Ljava/lang/String;I)V (Ljava/lang/String;I)V + ma 0 0 + ma 1 1 + m invoke(JIII)V invoke(JIII)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m ()V ()V + f a;;Lc; a;;Ld; + f a;;Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; a;;Lit/unimi/dsi/fastutil/ints/Int2ObjectMap; + f a;;[Lc; a;;[Ld; +c Ld; Le; + f a;;LL; a;;LN; + f b;;LL; b;;LN; +c Le; Lf; + m a(Ljava/lang/String;Z)I a(Ljava/lang/String;Z)I + ma 0 0 + ma 1 1 + m a(LG;)I a(LI;)I + ma 0 0 + m a(Ljava/lang/String;Ljava/util/function/Consumer;)LG; a(Ljava/lang/String;Ljava/util/function/Consumer;)LI; + ma 0 0 + ma 1 1 + m b(Ljava/lang/String;Ljava/util/function/Consumer;)LG; b(Ljava/lang/String;Ljava/util/function/Consumer;)LI; + ma 0 0 + ma 1 1 + m a()V a()V + m a(Ljava/util/Set;)V a(Ljava/util/Set;)V + ma 0 0 + m a(Ljava/util/Set;Ljava/lang/String;)Laj; a(Ljava/util/Set;Ljava/lang/String;)Lap; + ma 0 0 + ma 1 1 + m b(Ljava/util/Set;Ljava/lang/String;)Laj; b(Ljava/util/Set;Ljava/lang/String;)Lap; + ma 0 0 + ma 1 1 + m b(Ljava/util/Set;)V b(Ljava/util/Set;)V + ma 0 0 + m c(Ljava/util/Set;Ljava/lang/String;)Laj; c(Ljava/util/Set;Ljava/lang/String;)Lap; + ma 0 0 + ma 1 1 + m ()V ()V + f a;;LG; a;;LI; + f b;;LG; b;;LI; + f a;;I a;;I + f b;;I b;;I + f c;;I c;;I + f d;;I d;;I + f e;;I e;;I + f f;;I f;;I + f g;;I g;;I + f h;;I h;;I + f i;;I i;;I +c Lf; Lg; + m (IF)V (IF)V + ma 0 0 + ma 1 1 + m a(FF)V a(FF)V + ma 0 0 + ma 1 1 + m a(FF)Z a(FF)Z + ma 0 0 + ma 1 1 + f b;;F b;;F + f c;;F c;;F + f d;;F d;;F + f e;;F e;;F +c Lg; Lh; + m ()V ()V +c Lh; Li; + m (FFF)V (FFF)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(LaK;F)V a(Lbc;F)V + ma 0 0 + ma 1 1 + m a(LaW;BF)V a(Lbl;BF)V + ma 0 0 + ma 1 1 + ma 2 2 + f a;;F a;;F + f b;;F b;;F + f c;;F c;;F +c Li; Lj; + m (IF)V (IF)V + ma 0 0 + ma 1 1 + m a(FF)V a(FF)V + ma 0 0 + ma 1 1 + f a;;F a;;F + f a;;[[F a;;[[F +c Lj; Lk; + m (I)V (I)V + ma 0 0 +c Lk; Ll; + m (Ljava/lang/String;FFF)V (Ljava/lang/String;FFF)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(Ljava/lang/String;)V a(Ljava/lang/String;)V + ma 0 0 + m a([C)V a([C)V + ma 0 0 + f a;;F a;;F + f b;;F b;;F + f c;;F c;;F +c Ll; Ln; + m (LaL;)V (LaZ;)V + ma 0 0 + m a()Z a()Z + m a(FF)LaN; a(FF)Lbb; + ma 0 0 + ma 1 1 + m a(Z)V a(Z)V + ma 0 0 + m a()V a()V + m c()V c()V + f a;;LaL; a;;LaZ; + f a;;Z a;;Z +c Lm; Lo; + m (LaN;FF)V (Lbb;FF)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(FF)Z a(FF)Z + ma 0 0 + ma 1 1 + m a_()V a_()V + m b()V b()V + f a;;Lh; a;;Li; + f a;;Lk; a;;Ll; + f a;;Lf; a;;Lg; + f a;;LaN; a;;Lbb; +c Ln; Lp; + m (LaL;)V (LaZ;)V + ma 0 0 + m a_()V a_()V + m b()V b()V + m a(I)V a(I)V + ma 0 0 + m a(IF)V a(IF)V + ma 0 0 + ma 1 1 + m a(Lp;)V a(Lr;)V + ma 0 0 + m ()V ()V + f a;;LaL; a;;LaZ; + f a;;Z a;;Z + f a;;Li; a;;Lj; + f b;;Ljava/util/List; b;;Ljava/util/List; +c Lo; Lq; + m (FF)V (FF)V + ma 0 0 + ma 1 1 + m a_()V a_()V + m b()V b()V + f a;;Lh; a;;Li; + f a;;Lk; a;;Ll; +c Lp; Lr; + m a()V a()V +c Lq; Ls; + m ([Ljava/lang/String;)V ([Ljava/lang/String;)V + ma 0 0 + m a(FF)I a(FF)I + ma 0 0 + ma 1 1 +c Lr; Lt; + m (Ljava/lang/String;F)V (Ljava/lang/String;F)V + ma 0 0 + ma 1 1 + m a_()V a_()V + m b()V b()V + m a(Lr;FF)Z a(Lt;FF)Z + ma 0 0 + ma 1 1 + ma 2 2 + f a;;Lf; a;;Lg; + f a;;Lk; a;;Ll; +c Ls; Lu; + m (LU;[B[BII)V (LZ;[B[BII)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(IB)V a(IB)V + ma 0 0 + ma 1 1 + m a()V a()V + m a(LF;)V a(LH;)V + ma 0 0 + m b(LF;)V b(LH;)V + ma 0 0 + m c(LF;)V c(LH;)V + ma 0 0 + m a(III)I a(III)I + ma 0 0 + ma 1 1 + ma 2 2 + m b()V b()V + f a;;I a;;I + f b;;I b;;I + f a;;Lorg/joml/Matrix4f; a;;Lorg/joml/Matrix4f; + f a;;[B a;;[B + f b;;[B b;;[B + f a;;LY; a;;Lad; + f a;;Lv; a;;Lx; + f b;;Lv; b;;Lx; + f c;;Lv; c;;Lx; +c Lt; Lv; + m (Lorg/joml/Vector3f;LaW;FB)V (Lorg/joml/Vector3f;Lbl;FB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + m a(Lw;)V a(Ly;)V + ma 0 0 +c Ltk/valoeghese/fc0/client/Main; Ltk/valoeghese/fc0/client/Main; + m ()V ()V + m main([Ljava/lang/String;)V main([Ljava/lang/String;)V + ma 0 0 + m a(Ljava/lang/Object;)V a(Ljava/lang/Object;)V + ma 0 0 +c Ltk/valoeghese/fc0/client/a; Ltk/valoeghese/fc0/client/a; + m ()V ()V + m a()Ltk/valoeghese/fc0/client/a; a()Ltk/valoeghese/fc0/client/a; + m run()V run()V + m c()V d()V + m d()V e()V + m e()V f()V + m a()LW; a()Lab; + m a()LX; a()Lac; + m a(LX;)V a(Lac;)V + ma 0 0 + m a()V b()V + m a(Ljava/lang/String;)V a(Ljava/lang/String;)V + ma 0 0 + m b()V c()V + m a(I)V a(I)V + ma 0 0 + m a()F a()F + m a()J a()J + m a()LM; a()LO; + m a()Ln; a()Lp; + m invoke(JDD)V invoke(JDD)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(LA;)V a(LC;)V + ma 0 0 + m a(Ljava/lang/String;)Laj; a(Ljava/lang/String;)Lap; + ma 0 0 + m b(Ljava/lang/String;)Laj; b(Ljava/lang/String;)Lap; + ma 0 0 + mu a ()V + fu a a;;LX; + f a;;Lorg/joml/Matrix4f; a;;Lorg/joml/Matrix4f; + f b;;Lorg/joml/Matrix4f; b;;Lorg/joml/Matrix4f; + fu a a;;LW; + f b;;J b;;J + f a;;LN; a;;LP; + fu a a;;J + f a;;I a;;I + f a;;Lah; a;;Lan; + f a;;LZ; a;;Lae; + f a;;Lz; a;;LB; + f a;;LA; a;;LC; + f b;;LA; b;;LC; + f c;;LA; c;;LC; + f a;;LaP; a;;Lbe; + f a;;LM; a;;LO; + f a;;D a;;D + f b;;D b;;D + fu a a;;Ljava/util/Random; + f a;;Ltk/valoeghese/fc0/client/a; a;;Ltk/valoeghese/fc0/client/a; + fu a a;;Ljava/lang/Object; +c Ltk/valoeghese/fc0/client/b; Ltk/valoeghese/fc0/client/b; + m ()V ()V + f a;;La; a;;Lb; + f b;;La; b;;Lb; + f c;;La; c;;Lb; + f d;;La; d;;Lb; + f e;;La; e;;Lb; + f f;;La; f;;Lb; + f g;;La; g;;Lb; + f h;;La; h;;Lb; + f i;;La; i;;Lb; + f j;;La; j;;Lb; + f k;;La; k;;Lb; + f l;;La; l;;Lb; + f m;;La; m;;Lb; + f n;;La; n;;Lb; + f o;;La; o;;Lb; + f p;;La; p;;Lb; + f q;;La; q;;Lb; + f r;;La; r;;Lb; + f s;;La; s;;Lb; + f t;;La; t;;Lb; + f u;;La; u;;Lb; + f v;;La; v;;Lb; + f w;;La; w;;Lb; + f x;;La; x;;Lb; +c Lu; Lw; + m (Lorg/joml/Vector3f;ILaW;FB)V (Lorg/joml/Vector3f;ILbl;FB)V + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + m a(Lw;)V a(Ly;)V + ma 0 0 + f a;;Lorg/joml/Vector3f; a;;Lorg/joml/Vector3f; + f a;;I a;;I + f b;;I b;;I + f c;;I c;;I + f a;;F a;;F +c Lv; Lx; + m (Ljava/util/List;)V (Ljava/util/List;)V + ma 0 0 + m a(III)V a(III)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(FFFFFF)I a(FFFFFF)I + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + ma 5 5 +c Lw; Ly; + m a(III)V a(III)V + ma 0 0 + ma 1 1 + ma 2 2 + m a(FFFFFF)I a(FFFFFF)I + ma 0 0 + ma 1 1 + ma 2 2 + ma 3 3 + ma 4 4 + ma 5 5 +c Lx; Lz; + m (Ltk/valoeghese/fc0/client/a;)V (Ltk/valoeghese/fc0/client/a;)V + ma 0 0 + m a(F)V a(F)V + ma 0 0 + m a(DD)V a(DD)V + ma 0 0 + ma 1 1 + m c()V c()V + m a()V a()V + m a(LM;)V a(LO;)V + ma 0 0 + m b()V b()V + f a;;LN; a;;LP; + f a;;Ll; a;;Ln; +c Ly; LA; + m (Ltk/valoeghese/fc0/client/a;)V (Ltk/valoeghese/fc0/client/a;)V + ma 0 0 + m a()I a()I + m a(F)V a(F)V + ma 0 0 + m a(DD)V a(DD)V + ma 0 0 + ma 1 1 + m a()V a()V + m a(LM;)V a(LO;)V + ma 0 0 + m b()V b()V + m a(I)V a(I)V + ma 0 0 + m toString()Ljava/lang/String; toString()Ljava/lang/String; + f a;;Ljava/util/List; a;;Ljava/util/List; + f a;;LA; a;;LC; + f a;;I a;;I +c Lz; LB; + m (Ltk/valoeghese/fc0/client/a;)V (Ltk/valoeghese/fc0/client/a;)V + ma 0 0 + m a(F)V a(F)V + ma 0 0 + m a(DD)V a(DD)V + ma 0 0 + ma 1 1 + m a(LaL;)V a(LaZ;)V + ma 0 0 + m a()V a()V + m a(LM;)V a(LO;)V + ma 0 0 + m b()V b()V + f a;;LN; a;;LP; + f b;;LN; b;;LP; + f a;;Lk; a;;Ll; + f a;;Ln; a;;Lp; diff --git a/patches/tk/valoeghese/fc0/client/gui/screen/HudScreen.patch b/patches/tk/valoeghese/fc0/client/gui/screen/HudScreen.patch new file mode 100644 index 0000000..b7bf9c2 --- /dev/null +++ b/patches/tk/valoeghese/fc0/client/gui/screen/HudScreen.patch @@ -0,0 +1,9 @@ +--- a/tk/valoeghese/fc0/client/gui/screen/HudScreen.java ++++ b/tk/valoeghese/fc0/client/gui/screen/HudScreen.java +@@ -233,5 +233,5 @@ + } + if (Keybinds.field_469.isPressed()) { +- ((Client2fc)object).method_437(!((Client2fc)(object = Client2fc.get())).method_435()); ++ fc0.method_437(!((Client2fc)(object = Client2fc.get())).method_435()); + } + } diff --git a/patches/tk/valoeghese/fc0/client/render/world/ChunkRenderer.patch b/patches/tk/valoeghese/fc0/client/render/world/ChunkRenderer.patch deleted file mode 100644 index f963247..0000000 --- a/patches/tk/valoeghese/fc0/client/render/world/ChunkRenderer.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- a/tk/valoeghese/fc0/client/render/world/ChunkRenderer.java -+++ b/tk/valoeghese/fc0/client/render/world/ChunkRenderer.java -@@ -58,4 +58,5 @@ - boolean bl2 = bl = tile2 == Tile.WATER; - ArrayList arrayList5 = bl ? arrayList2 : (arrayList4 = tile2.isTranslucent() ? arrayList3 : arrayList); -+ arrayList4 = arrayList5; - if (tile2.shouldRender() && tile2.hasCrossModel()) { - arrayList4.add(new CrossTileRenderer(new Vector3f(i, k, j), tile2, 0.95f, by2)); diff --git a/patches/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.patch b/patches/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.patch index b65373d..3636460 100644 --- a/patches/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.patch +++ b/patches/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.patch @@ -1,6 +1,6 @@ --- a/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.java +++ b/tk/valoeghese/fc0/io/ThreadedSodChunkStorage.java -@@ -71,6 +71,5 @@ +@@ -83,6 +83,5 @@ */ public void saveChunks(Iterator iterator) { - Object object = LOCK; @@ -8,9 +8,9 @@ + synchronized (LOCK) { try { while (saveThread != null && !SaveThread.isReady()) { -@@ -108,6 +107,5 @@ +@@ -120,6 +119,5 @@ */ - public void save(Iterator iterator, Iterator iterator2, int n, Pos pos, Pos pos2, long l) { + public void method_161(Player player, Iterator iterator, Iterator iterator2, int n, Pos pos, Pos pos2, long l) { - Object object = LOCK; - synchronized (object) { + synchronized (LOCK) { diff --git a/patches/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.patch b/patches/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.patch index 9ceb6a1..1d424b0 100644 --- a/patches/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.patch +++ b/patches/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.patch @@ -1,14 +1,8 @@ --- a/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.java +++ b/tk/valoeghese/fc0/math/noise/OpenSimplexNoise.java -@@ -4,131 +4,2429 @@ - package tk.valoeghese.fc0.math.noise; - --class OpenSimplexNoise { -- private short[] perm = new short[256]; -- private short[] permGradIndex3D = new short[256]; -- private static byte[] gradients2D = new byte[]{5, 2, 2, 5, -5, 2, -2, 5, 5, -2, 2, -5, -5, -2, -2, -5}; -- private static byte[] gradients3D = new byte[]{-11, 4, 4, -4, 11, 4, -4, 4, 11, 11, 4, 4, 4, 11, 4, 4, 4, 11, -11, -4, 4, -4, -11, 4, -4, -4, 11, 11, -4, 4, 4, -11, 4, 4, -4, 11, -11, 4, -4, -4, 11, -4, -4, 4, -11, 11, 4, -4, 4, 11, -4, 4, 4, -11, -11, -4, -4, -4, -11, -4, -4, -4, -11, 11, -4, -4, 4, -11, -4, 4, -4, -11}; -+/* +@@ -1,612 +1,2427 @@ + /* +- * Decompiled with CFR 0.150. + * 2014 OpenSimplex Noise in Java. + * by Kurt Spencer + * @@ -25,15 +19,21 @@ + * https://github.com/KdotJPG/OpenSimplex2/blob/master/java/legacy/OpenSimplex.java + * + * This is mostly kept here for reference. In particular, the 4D code is very slow. -+ */ - + */ +-package tk.valoeghese.fc0.math.noise; + +-class OpenSimplexNoise { +- private short[] perm = new short[256]; +- private short[] permGradIndex3D = new short[256]; +- private static byte[] gradients2D = new byte[]{5, 2, 2, 5, -5, 2, -2, 5, 5, -2, 2, -5, -5, -2, -2, -5}; +- private static byte[] gradients3D = new byte[]{-11, 4, 4, -4, 11, 4, -4, 4, 11, 11, 4, 4, 4, 11, 4, 4, 4, 11, -11, -4, 4, -4, -11, 4, -4, -4, 11, 11, -4, 4, 4, -11, 4, 4, -4, 11, -11, 4, -4, -4, 11, -4, -4, 4, -11, 11, 4, -4, 4, 11, -4, 4, 4, -11, -11, -4, -4, -4, -11, -4, -4, -4, -11, 11, -4, -4, 4, -11, -4, 4, -4, -11}; ++public class OpenSimplexNoise { + - public OpenSimplexNoise(long l) { - int n; - short[] arrs = new short[256]; - for (n = 0; n < 256; n = (int)((short)(n + 1))) { - arrs[n] = n; -+public class OpenSimplexNoise { -+ + private static final double STRETCH_CONSTANT_2D = -0.211324865405187; // (1/Math.sqrt(2+1)-1)/2; + private static final double SQUISH_CONSTANT_2D = 0.366025403784439; // (Math.sqrt(2+1)-1)/2; + private static final double STRETCH_CONSTANT_3D = -1.0 / 6; // (1/Math.sqrt(3+1)-1)/3; @@ -73,6 +73,10 @@ - int n2 = (int)(((l = l * 6364136223846793005L + 1442695040888963407L) + 31L) % (long)(n + 1)); - if (n2 < 0) { - n2 += n + 1; +- } +- this.perm[n] = arrs[n2]; +- this.permGradIndex3D[n] = (short)(this.perm[n] % (gradients3D.length / 3) * 3); +- arrs[n2] = arrs[n]; + } + + public OpenSimplexNoise(long seed) { @@ -93,9 +97,39 @@ + permGrad3[i] = GRADIENTS_3D[perm[i]]; + permGrad4[i] = GRADIENTS_4D[perm[i]]; + source[r] = source[i]; -+ } -+ } -+ + } + } + +- public double eval(double d, double d2) { +- double d3; +- double d4; +- double d5; +- int n; +- int n2; +- double d6; +- double d7; +- double d8; +- double d9; +- double d10 = (d + d2) * -0.211324865405187; +- double d11 = d + d10; +- double d12 = d2 + d10; +- int n3 = OpenSimplexNoise.fastFloor(d11); +- int n4 = OpenSimplexNoise.fastFloor(d12); +- double d13 = (double)(n3 + n4) * 0.366025403784439; +- double d14 = (double)n3 + d13; +- double d15 = (double)n4 + d13; +- double d16 = d11 - (double)n3; +- double d17 = d12 - (double)n4; +- double d18 = d16 + d17; +- double d19 = d - d14; +- double d20 = d2 - d15; +- double d21 = 0.0; +- double d22 = d19 - 1.0 - 0.366025403784439; +- double d23 = d20 - 0.0 - 0.366025403784439; +- double d24 = 2.0 - d22 * d22 - d23 * d23; +- if (d24 > 0.0) { +- d24 *= d24; +- d21 += d24 * d24 * this.extrapolate(n3 + 1, n4 + 0, d22, d23); + // 2D OpenSimplex Noise. + public double eval(double x, double y) { + @@ -133,7 +167,10 @@ + if (attn1 > 0) { + attn1 *= attn1; + value += attn1 * attn1 * extrapolate(xsb + 1, ysb + 0, dx1, dy1); -+ } + } +- if ((d9 = 2.0 - (d8 = d19 - 0.0 - 0.366025403784439) * d8 - (d7 = d20 - 1.0 - 0.366025403784439) * d7) > 0.0) { +- d9 *= d9; +- d21 += d9 * d9 * this.extrapolate(n3 + 0, n4 + 1, d8, d7); + + // Contribution (0,1) + double dx2 = dx0 - 0 - SQUISH_CONSTANT_2D; @@ -142,7 +179,15 @@ + if (attn2 > 0) { + attn2 *= attn2; + value += attn2 * attn2 * extrapolate(xsb + 0, ysb + 1, dx2, dy2); -+ } + } +- if (d18 <= 1.0) { +- d6 = 1.0 - d18; +- if (d6 > d16 || d6 > d17) { +- if (d16 > d17) { +- n2 = n3 + 1; +- n = n4 - 1; +- d5 = d19 - 1.0; +- d4 = d20 + 1.0; + + if (inSum <= 1) { // We're inside the triangle (2-Simplex) at (0,0) + double zins = 1 - inSum; @@ -152,21 +197,35 @@ + ysv_ext = ysb - 1; + dx_ext = dx0 - 1; + dy_ext = dy0 + 1; -+ } else { + } else { +- n2 = n3 - 1; +- n = n4 + 1; +- d5 = d19 + 1.0; +- d4 = d20 - 1.0; + xsv_ext = xsb - 1; + ysv_ext = ysb + 1; + dx_ext = dx0 + 1; + dy_ext = dy0 - 1; -+ } + } +- } else { +- n2 = n3 + 1; +- n = n4 + 1; +- d5 = d19 - 1.0 - 0.732050807568878; +- d4 = d20 - 1.0 - 0.732050807568878; + } else { // (1,0) and (0,1) are the closest two vertices. + xsv_ext = xsb + 1; + ysv_ext = ysb + 1; + dx_ext = dx0 - 1 - 2 * SQUISH_CONSTANT_2D; + dy_ext = dy0 - 1 - 2 * SQUISH_CONSTANT_2D; } -- this.perm[n] = arrs[n2]; -- this.permGradIndex3D[n] = (short)(this.perm[n] % (gradients3D.length / 3) * 3); -- arrs[n2] = arrs[n]; +- } else { +- d6 = 2.0 - d18; +- if (d6 < d16 || d6 < d17) { +- if (d16 > d17) { +- n2 = n3 + 2; +- n = n4 + 0; +- d5 = d19 - 2.0 - 0.732050807568878; +- d4 = d20 + 0.0 - 0.732050807568878; + } else { // We're inside the triangle (2-Simplex) at (1,1) + double zins = 2 - inSum; + if (zins < xins || zins < yins) { // (0,0) is one of the closest two triangular vertices @@ -175,71 +234,119 @@ + ysv_ext = ysb + 0; + dx_ext = dx0 - 2 - 2 * SQUISH_CONSTANT_2D; + dy_ext = dy0 + 0 - 2 * SQUISH_CONSTANT_2D; -+ } else { + } else { +- n2 = n3 + 0; +- n = n4 + 2; +- d5 = d19 + 0.0 - 0.732050807568878; +- d4 = d20 - 2.0 - 0.732050807568878; + xsv_ext = xsb + 0; + ysv_ext = ysb + 2; + dx_ext = dx0 + 0 - 2 * SQUISH_CONSTANT_2D; + dy_ext = dy0 - 2 - 2 * SQUISH_CONSTANT_2D; -+ } + } +- } else { +- d5 = d19; +- d4 = d20; +- n2 = n3; +- n = n4; + } else { // (1,0) and (0,1) are the closest two vertices. + dx_ext = dx0; + dy_ext = dy0; + xsv_ext = xsb; + ysv_ext = ysb; -+ } + } +- ++n3; +- ++n4; +- d19 = d19 - 1.0 - 0.732050807568878; +- d20 = d20 - 1.0 - 0.732050807568878; + xsb += 1; + ysb += 1; + dx0 = dx0 - 1 - 2 * SQUISH_CONSTANT_2D; + dy0 = dy0 - 1 - 2 * SQUISH_CONSTANT_2D; } +- d6 = 2.0 - d19 * d19 - d20 * d20; +- if (d6 > 0.0) { +- d6 *= d6; +- d21 += d6 * d6 * this.extrapolate(n3, n4, d19, d20); + + // Contribution (0,0) or (1,1) + double attn0 = 2 - dx0 * dx0 - dy0 * dy0; + if (attn0 > 0) { + attn0 *= attn0; + value += attn0 * attn0 * extrapolate(xsb, ysb, dx0, dy0); -+ } + } +- if ((d3 = 2.0 - d5 * d5 - d4 * d4) > 0.0) { +- d3 *= d3; +- d21 += d3 * d3 * this.extrapolate(n2, n, d5, d4); + + // Extra Vertex + double attn_ext = 2 - dx_ext * dx_ext - dy_ext * dy_ext; + if (attn_ext > 0) { + attn_ext *= attn_ext; + value += attn_ext * attn_ext * extrapolate(xsv_ext, ysv_ext, dx_ext, dy_ext); -+ } + } +- return d21 / 47.0; + + return value; } - -- public double eval(double d, double d2) { -- double d3; + +- public double eval(double d, double d2, double d3) { - double d4; - double d5; +- double d6; - int n; - int n2; -- double d6; - double d7; - double d8; +- int n3; +- int n4; - double d9; -- double d10 = (d + d2) * -0.211324865405187; -- double d11 = d + d10; -- double d12 = d2 + d10; -- int n3 = OpenSimplexNoise.fastFloor(d11); -- int n4 = OpenSimplexNoise.fastFloor(d12); -- double d13 = (double)(n3 + n4) * 0.366025403784439; -- double d14 = (double)n3 + d13; -- double d15 = (double)n4 + d13; -- double d16 = d11 - (double)n3; -- double d17 = d12 - (double)n4; -- double d18 = d16 + d17; -- double d19 = d - d14; -- double d20 = d2 - d15; -- double d21 = 0.0; -- double d22 = d19 - 1.0 - 0.366025403784439; -- double d23 = d20 - 0.0 - 0.366025403784439; -- double d24 = 2.0 - d22 * d22 - d23 * d23; -- if (d24 > 0.0) { -- d24 *= d24; -- d21 += d24 * d24 * this.extrapolate(n3 + 1, n4 + 0, d22, d23); +- double d10; +- int n5; +- int n6; +- double d11 = (d + d2 + d3) * -0.16666666666666666; +- double d12 = d + d11; +- double d13 = d2 + d11; +- double d14 = d3 + d11; +- int n7 = OpenSimplexNoise.fastFloor(d12); +- int n8 = OpenSimplexNoise.fastFloor(d13); +- int n9 = OpenSimplexNoise.fastFloor(d14); +- double d15 = (double)(n7 + n8 + n9) * 0.3333333333333333; +- double d16 = (double)n7 + d15; +- double d17 = (double)n8 + d15; +- double d18 = (double)n9 + d15; +- double d19 = d12 - (double)n7; +- double d20 = d13 - (double)n8; +- double d21 = d14 - (double)n9; +- double d22 = d19 + d20 + d21; +- double d23 = d - d16; +- double d24 = d2 - d17; +- double d25 = d3 - d18; +- double d26 = 0.0; +- if (d22 <= 1.0) { +- double d27; +- double d28; +- double d29; +- double d30; +- double d31; +- double d32; +- double d33; +- double d34; +- double d35; +- double d36; +- double d37; +- double d38; +- int n10; +- int n11 = 1; +- double d39 = d19; +- int n12 = 2; +- double d40 = d20; +- if (d39 >= d40 && d21 > d40) { +- d40 = d21; +- n12 = 4; +- } else if (d39 < d40 && d21 > d39) { +- d39 = d21; +- n11 = 4; + // 3D OpenSimplex Noise. + public double eval(double x, double y, double z) { + @@ -321,7 +428,15 @@ + } else if (aScore < bScore && zins > aScore) { + aScore = zins; + aPoint = 0x04; -+ } + } +- double d41 = 1.0 - d22; +- if (d41 > d39 || d41 > d40) { +- int n13 = n10 = d40 > d39 ? n12 : n11; +- if ((n10 & 1) == 0) { +- n6 = n7 - 1; +- n5 = n7; +- d10 = d23 + 1.0; +- d9 = d23; + + // Now we determine the two lattice points not part of the tetrahedron that may contribute. + // This depends on the closest two tetrahedral vertices, including (0,0,0) @@ -334,10 +449,18 @@ + xsv_ext1 = xsb; + dx_ext0 = dx0 + 1; + dx_ext1 = dx0; -+ } else { + } else { +- n6 = n5 = n7 + 1; +- d10 = d9 = d23 - 1.0; + xsv_ext0 = xsv_ext1 = xsb + 1; + dx_ext0 = dx_ext1 = dx0 - 1; -+ } + } +- if ((n10 & 2) == 0) { +- n4 = n8; +- n3 = n4--; +- d7 = d8 = d24; +- if ((n10 & 1) == 0) { +- d8 += 1.0; + + if ((c & 0x02) == 0) { + ysv_ext0 = ysv_ext1 = ysb; @@ -345,24 +468,42 @@ + if ((c & 0x01) == 0) { + ysv_ext1 -= 1; + dy_ext1 += 1; -+ } else { + } else { +- --n3; +- d7 += 1.0; + ysv_ext0 -= 1; + dy_ext0 += 1; -+ } -+ } else { + } + } else { +- n3 = n4 = n8 + 1; +- d7 = d8 = d24 - 1.0; + ysv_ext0 = ysv_ext1 = ysb + 1; + dy_ext0 = dy_ext1 = dy0 - 1; -+ } + } +- if ((n10 & 4) == 0) { +- n2 = n9; +- n = n9 - 1; +- d6 = d25; +- d5 = d25 + 1.0; + + if ((c & 0x04) == 0) { + zsv_ext0 = zsb; + zsv_ext1 = zsb - 1; + dz_ext0 = dz0; + dz_ext1 = dz0 + 1; -+ } else { + } else { +- n2 = n = n9 + 1; +- d6 = d5 = d25 - 1.0; + zsv_ext0 = zsv_ext1 = zsb + 1; + dz_ext0 = dz_ext1 = dz0 - 1; -+ } + } +- } else { +- n10 = (byte)(n11 | n12); +- if ((n10 & 1) == 0) { +- n6 = n7; +- n5 = n7 - 1; +- d10 = d23 - 0.6666666666666666; +- d9 = d23 + 1.0 - 0.3333333333333333; + } else { // (0,0,0) is not one of the closest two tetrahedral vertices. + byte c = (byte)(aPoint | bPoint); // Our two extra vertices are determined by the closest two. + @@ -371,41 +512,67 @@ + xsv_ext1 = xsb - 1; + dx_ext0 = dx0 - 2 * SQUISH_CONSTANT_3D; + dx_ext1 = dx0 + 1 - SQUISH_CONSTANT_3D; -+ } else { + } else { +- n6 = n5 = n7 + 1; +- d10 = d23 - 1.0 - 0.6666666666666666; +- d9 = d23 - 1.0 - 0.3333333333333333; + xsv_ext0 = xsv_ext1 = xsb + 1; + dx_ext0 = dx0 - 1 - 2 * SQUISH_CONSTANT_3D; + dx_ext1 = dx0 - 1 - SQUISH_CONSTANT_3D; -+ } + } +- if ((n10 & 2) == 0) { +- n3 = n8; +- n4 = n8 - 1; +- d7 = d24 - 0.6666666666666666; +- d8 = d24 + 1.0 - 0.3333333333333333; + + if ((c & 0x02) == 0) { + ysv_ext0 = ysb; + ysv_ext1 = ysb - 1; + dy_ext0 = dy0 - 2 * SQUISH_CONSTANT_3D; + dy_ext1 = dy0 + 1 - SQUISH_CONSTANT_3D; -+ } else { + } else { +- n3 = n4 = n8 + 1; +- d7 = d24 - 1.0 - 0.6666666666666666; +- d8 = d24 - 1.0 - 0.3333333333333333; + ysv_ext0 = ysv_ext1 = ysb + 1; + dy_ext0 = dy0 - 1 - 2 * SQUISH_CONSTANT_3D; + dy_ext1 = dy0 - 1 - SQUISH_CONSTANT_3D; -+ } + } +- if ((n10 & 4) == 0) { +- n2 = n9; +- n = n9 - 1; +- d6 = d25 - 0.6666666666666666; +- d5 = d25 + 1.0 - 0.3333333333333333; + + if ((c & 0x04) == 0) { + zsv_ext0 = zsb; + zsv_ext1 = zsb - 1; + dz_ext0 = dz0 - 2 * SQUISH_CONSTANT_3D; + dz_ext1 = dz0 + 1 - SQUISH_CONSTANT_3D; -+ } else { + } else { +- n2 = n = n9 + 1; +- d6 = d25 - 1.0 - 0.6666666666666666; +- d5 = d25 - 1.0 - 0.3333333333333333; + zsv_ext0 = zsv_ext1 = zsb + 1; + dz_ext0 = dz0 - 1 - 2 * SQUISH_CONSTANT_3D; + dz_ext1 = dz0 - 1 - SQUISH_CONSTANT_3D; -+ } -+ } + } + } +- double d42 = 2.0 - d23 * d23 - d24 * d24 - d25 * d25; +- if (d42 > 0.0) { +- d42 *= d42; +- d26 += d42 * d42 * this.extrapolate(n7 + 0, n8 + 0, n9 + 0, d23, d24, d25); + + // Contribution (0,0,0) + double attn0 = 2 - dx0 * dx0 - dy0 * dy0 - dz0 * dz0; + if (attn0 > 0) { + attn0 *= attn0; + value += attn0 * attn0 * extrapolate(xsb + 0, ysb + 0, zsb + 0, dx0, dy0, dz0); -+ } + } +- if ((d38 = 2.0 - (d37 = d23 - 1.0 - 0.3333333333333333) * d37 - (d36 = d24 - 0.0 - 0.3333333333333333) * d36 - (d35 = d25 - 0.0 - 0.3333333333333333) * d35) > 0.0) { +- d38 *= d38; +- d26 += d38 * d38 * this.extrapolate(n7 + 1, n8 + 0, n9 + 0, d37, d36, d35); + + // Contribution (1,0,0) + double dx1 = dx0 - 1 - SQUISH_CONSTANT_3D; @@ -415,7 +582,10 @@ + if (attn1 > 0) { + attn1 *= attn1; + value += attn1 * attn1 * extrapolate(xsb + 1, ysb + 0, zsb + 0, dx1, dy1, dz1); -+ } + } +- if ((d34 = 2.0 - (d33 = d23 - 0.0 - 0.3333333333333333) * d33 - (d32 = d24 - 1.0 - 0.3333333333333333) * d32 - (d31 = d35) * d31) > 0.0) { +- d34 *= d34; +- d26 += d34 * d34 * this.extrapolate(n7 + 0, n8 + 1, n9 + 0, d33, d32, d31); + + // Contribution (0,1,0) + double dx2 = dx0 - 0 - SQUISH_CONSTANT_3D; @@ -425,7 +595,10 @@ + if (attn2 > 0) { + attn2 *= attn2; + value += attn2 * attn2 * extrapolate(xsb + 0, ysb + 1, zsb + 0, dx2, dy2, dz2); -+ } + } +- if ((d30 = 2.0 - (d29 = d33) * d29 - (d28 = d36) * d28 - (d27 = d25 - 1.0 - 0.3333333333333333) * d27) > 0.0) { +- d30 *= d30; +- d26 += d30 * d30 * this.extrapolate(n7 + 0, n8 + 0, n9 + 1, d29, d28, d27); + + // Contribution (0,0,1) + double dx3 = dx2; @@ -435,7 +608,28 @@ + if (attn3 > 0) { + attn3 *= attn3; + value += attn3 * attn3 * extrapolate(xsb + 0, ysb + 0, zsb + 1, dx3, dy3, dz3); -+ } + } +- } else if (d22 >= 2.0) { +- double d43; +- double d44; +- double d45; +- double d46; +- double d47; +- double d48; +- double d49; +- double d50; +- double d51; +- int n14; +- int n15 = 6; +- double d52 = d19; +- int n16 = 5; +- double d53 = d20; +- if (d52 <= d53 && d21 < d53) { +- d53 = d21; +- n16 = 3; +- } else if (d52 > d53 && d21 < d52) { +- d52 = d21; +- n15 = 3; + } else if (inSum >= 2) { // We're inside the tetrahedron (3-Simplex) at (1,1,1) + + // Determine which two tetrahedral vertices are the closest, out of (1,1,0), (1,0,1), (0,1,1) but not (1,1,1). @@ -449,7 +643,15 @@ + } else if (aScore > bScore && zins < aScore) { + aScore = zins; + aPoint = 0x03; -+ } + } +- double d54 = 3.0 - d22; +- if (d54 < d52 || d54 < d53) { +- int n17 = n14 = d53 < d52 ? n16 : n15; +- if ((n14 & 1) != 0) { +- n6 = n7 + 2; +- n5 = n7 + 1; +- d10 = d23 - 2.0 - 1.0; +- d9 = d23 - 1.0 - 1.0; + + // Now we determine the two lattice points not part of the tetrahedron that may contribute. + // This depends on the closest two tetrahedral vertices, including (1,1,1) @@ -462,10 +664,18 @@ + xsv_ext1 = xsb + 1; + dx_ext0 = dx0 - 2 - 3 * SQUISH_CONSTANT_3D; + dx_ext1 = dx0 - 1 - 3 * SQUISH_CONSTANT_3D; -+ } else { + } else { +- n6 = n5 = n7; +- d10 = d9 = d23 - 1.0; + xsv_ext0 = xsv_ext1 = xsb; + dx_ext0 = dx_ext1 = dx0 - 3 * SQUISH_CONSTANT_3D; -+ } + } +- if ((n14 & 2) != 0) { +- n4 = n8 + 1; +- n3 = n4++; +- d7 = d8 = d24 - 1.0 - 1.0; +- if ((n14 & 1) != 0) { +- d8 -= 1.0; + + if ((c & 0x02) != 0) { + ysv_ext0 = ysv_ext1 = ysb + 1; @@ -473,24 +683,35 @@ + if ((c & 0x01) != 0) { + ysv_ext1 += 1; + dy_ext1 -= 1; -+ } else { + } else { +- ++n3; +- d7 -= 1.0; + ysv_ext0 += 1; + dy_ext0 -= 1; -+ } -+ } else { + } + } else { +- n3 = n4 = n8; +- d7 = d8 = d24 - 1.0; + ysv_ext0 = ysv_ext1 = ysb; + dy_ext0 = dy_ext1 = dy0 - 3 * SQUISH_CONSTANT_3D; -+ } + } +- if ((n14 & 4) != 0) { +- n2 = n9 + 1; +- n = n9 + 2; +- d6 = d25 - 1.0 - 1.0; +- d5 = d25 - 2.0 - 1.0; + + if ((c & 0x04) != 0) { + zsv_ext0 = zsb + 1; + zsv_ext1 = zsb + 2; + dz_ext0 = dz0 - 1 - 3 * SQUISH_CONSTANT_3D; + dz_ext1 = dz0 - 2 - 3 * SQUISH_CONSTANT_3D; -+ } else { + } else { +- n2 = n = n9; +- d6 = d5 = d25 - 1.0; + zsv_ext0 = zsv_ext1 = zsb; + dz_ext0 = dz_ext1 = dz0 - 3 * SQUISH_CONSTANT_3D; -+ } + } + } else { // (1,1,1) is not one of the closest two tetrahedral vertices. + byte c = (byte)(aPoint & bPoint); // Our two extra vertices are determined by the closest two. + @@ -581,7 +802,13 @@ + aScore = p1 - 1; + aPoint = 0x03; + aIsFurtherSide = true; -+ } else { + } else { +- n14 = (byte)(n15 & n16); +- if ((n14 & 1) != 0) { +- n6 = n7 + 1; +- n5 = n7 + 2; +- d10 = d23 - 1.0 - 0.3333333333333333; +- d9 = d23 - 2.0 - 0.6666666666666666; + aScore = 1 - p1; + aPoint = 0x04; + aIsFurtherSide = false; @@ -701,10 +928,18 @@ + if (aIsFurtherSide) { + c1 = aPoint; + c2 = bPoint; -+ } else { + } else { +- n6 = n5 = n7; +- d10 = d23 - 0.3333333333333333; +- d9 = d23 - 0.6666666666666666; + c1 = bPoint; + c2 = aPoint; -+ } + } +- if ((n14 & 2) != 0) { +- n3 = n8 + 1; +- n4 = n8 + 2; +- d7 = d24 - 1.0 - 0.3333333333333333; +- d8 = d24 - 2.0 - 0.6666666666666666; + + // One contribution is a permutation of (1,1,-1) + if ((c1 & 0x01) == 0) { @@ -721,14 +956,22 @@ + xsv_ext0 = xsb + 1; + ysv_ext0 = ysb - 1; + zsv_ext0 = zsb + 1; -+ } else { + } else { +- n3 = n4 = n8; +- d7 = d24 - 0.3333333333333333; +- d8 = d24 - 0.6666666666666666; + dx_ext0 = dx0 - 1 - SQUISH_CONSTANT_3D; + dy_ext0 = dy0 - 1 - SQUISH_CONSTANT_3D; + dz_ext0 = dz0 + 1 - SQUISH_CONSTANT_3D; + xsv_ext0 = xsb + 1; + ysv_ext0 = ysb + 1; + zsv_ext0 = zsb - 1; -+ } + } +- if ((n14 & 4) != 0) { +- n2 = n9 + 1; +- n = n9 + 2; +- d6 = d25 - 1.0 - 0.3333333333333333; +- d5 = d25 - 2.0 - 0.6666666666666666; + + // One contribution is a permutation of (0,0,2) + dx_ext1 = dx0 - 2 * SQUISH_CONSTANT_3D; @@ -743,11 +986,21 @@ + } else if ((c2 & 0x02) != 0) { + dy_ext1 -= 2; + ysv_ext1 += 2; -+ } else { + } else { +- n2 = n = n9; +- d6 = d25 - 0.3333333333333333; +- d5 = d25 - 0.6666666666666666; + dz_ext1 -= 2; + zsv_ext1 += 2; -+ } -+ } + } + } +- double d55 = d23 - 1.0 - 0.6666666666666666; +- double d56 = d24 - 1.0 - 0.6666666666666666; +- double d57 = d25 - 0.0 - 0.6666666666666666; +- double d58 = 2.0 - d55 * d55 - d56 * d56 - d57 * d57; +- if (d58 > 0.0) { +- d58 *= d58; +- d26 += d58 * d58 * this.extrapolate(n7 + 1, n8 + 1, n9 + 0, d55, d56, d57); + + // Contribution (1,0,0) + double dx1 = dx0 - 1 - SQUISH_CONSTANT_3D; @@ -757,7 +1010,10 @@ + if (attn1 > 0) { + attn1 *= attn1; + value += attn1 * attn1 * extrapolate(xsb + 1, ysb + 0, zsb + 0, dx1, dy1, dz1); -+ } + } +- if ((d51 = 2.0 - (d50 = d55) * d50 - (d49 = d24 - 0.0 - 0.6666666666666666) * d49 - (d48 = d25 - 1.0 - 0.6666666666666666) * d48) > 0.0) { +- d51 *= d51; +- d26 += d51 * d51 * this.extrapolate(n7 + 1, n8 + 0, n9 + 1, d50, d49, d48); + + // Contribution (0,1,0) + double dx2 = dx0 - 0 - SQUISH_CONSTANT_3D; @@ -767,7 +1023,10 @@ + if (attn2 > 0) { + attn2 *= attn2; + value += attn2 * attn2 * extrapolate(xsb + 0, ysb + 1, zsb + 0, dx2, dy2, dz2); -+ } + } +- if ((d47 = 2.0 - (d46 = d23 - 0.0 - 0.6666666666666666) * d46 - (d45 = d56) * d45 - (d44 = d48) * d44) > 0.0) { +- d47 *= d47; +- d26 += d47 * d47 * this.extrapolate(n7 + 0, n8 + 1, n9 + 1, d46, d45, d44); + + // Contribution (0,0,1) + double dx3 = dx2; @@ -777,7 +1036,10 @@ + if (attn3 > 0) { + attn3 *= attn3; + value += attn3 * attn3 * extrapolate(xsb + 0, ysb + 0, zsb + 1, dx3, dy3, dz3); -+ } + } +- if ((d43 = 2.0 - (d23 = d23 - 1.0 - 1.0) * d23 - (d24 = d24 - 1.0 - 1.0) * d24 - (d25 = d25 - 1.0 - 1.0) * d25) > 0.0) { +- d43 *= d43; +- d26 += d43 * d43 * this.extrapolate(n7 + 1, n8 + 1, n9 + 1, d23, d24, d25); + + // Contribution (1,1,0) + double dx4 = dx0 - 1 - 2 * SQUISH_CONSTANT_3D; @@ -787,7 +1049,41 @@ + if (attn4 > 0) { + attn4 *= attn4; + value += attn4 * attn4 * extrapolate(xsb + 1, ysb + 1, zsb + 0, dx4, dy4, dz4); -+ } + } +- } else { +- double d59; +- double d60; +- double d61; +- double d62; +- double d63; +- double d64; +- double d65; +- double d66; +- double d67; +- double d68; +- double d69; +- double d70; +- double d71; +- double d72; +- double d73; +- double d74; +- double d75; +- double d76; +- double d77; +- double d78; +- int n18; +- double d79; +- boolean bl; +- int n19; +- double d80; +- boolean bl2; +- int n20; +- double d81; +- double d82 = d19 + d20; +- if (d82 > 1.0) { +- d81 = d82 - 1.0; +- n20 = 3; +- bl2 = true; + + // Contribution (1,0,1) + double dx5 = dx4; @@ -808,10 +1104,7 @@ + attn6 *= attn6; + value += attn6 * attn6 * extrapolate(xsb + 0, ysb + 1, zsb + 1, dx6, dy6, dz6); + } - } -- if ((d9 = 2.0 - (d8 = d19 - 0.0 - 0.366025403784439) * d8 - (d7 = d20 - 1.0 - 0.366025403784439) * d7) > 0.0) { -- d9 *= d9; -- d21 += d9 * d9 * this.extrapolate(n3 + 0, n4 + 1, d8, d7); ++ } + + // First extra vertex + double attn_ext0 = 2 - dx_ext0 * dx_ext0 - dy_ext0 * dy_ext0 - dz_ext0 * dz_ext0; @@ -819,15 +1112,7 @@ + { + attn_ext0 *= attn_ext0; + value += attn_ext0 * attn_ext0 * extrapolate(xsv_ext0, ysv_ext0, zsv_ext0, dx_ext0, dy_ext0, dz_ext0); - } -- if (d18 <= 1.0) { -- d6 = 1.0 - d18; -- if (d6 > d16 || d6 > d17) { -- if (d16 > d17) { -- n2 = n3 + 1; -- n = n4 - 1; -- d5 = d19 - 1.0; -- d4 = d20 + 1.0; ++ } + + // Second extra vertex + double attn_ext1 = 2 - dx_ext1 * dx_ext1 - dy_ext1 * dy_ext1 - dz_ext1 * dz_ext1; @@ -943,14 +1228,10 @@ + xsv_ext1 = xsv_ext2 = xsb; + dx_ext0 = dx0 + 1; + dx_ext1 = dx_ext2 = dx0; - } else { -- n2 = n3 - 1; -- n = n4 + 1; -- d5 = d19 + 1.0; -- d4 = d20 - 1.0; ++ } else { + xsv_ext0 = xsv_ext1 = xsv_ext2 = xsb + 1; + dx_ext0 = dx_ext1 = dx_ext2 = dx0 - 1; - } ++ } + + if ((c & 0x02) == 0) { + ysv_ext0 = ysv_ext1 = ysv_ext2 = ysb; @@ -1318,30 +1599,38 @@ + aScore = xins + yins; + aPoint = 0x03; } else { -- n2 = n3 + 1; -- n = n4 + 1; -- d5 = d19 - 1.0 - 0.732050807568878; -- d4 = d20 - 1.0 - 0.732050807568878; +- d81 = 1.0 - d82; +- n20 = 4; +- bl2 = false; + aScore = zins + wins; + aPoint = 0x0C; } -- } else { -- d6 = 2.0 - d18; -- if (d6 < d16 || d6 < d17) { -- if (d16 > d17) { -- n2 = n3 + 2; -- n = n4 + 0; -- d5 = d19 - 2.0 - 0.732050807568878; -- d4 = d20 + 0.0 - 0.732050807568878; +- double d83 = d19 + d21; +- if (d83 > 1.0) { +- d80 = d83 - 1.0; +- n19 = 5; +- bl = true; + + // Decide between (1,0,1,0) and (0,1,0,1) + if (xins + zins > yins + wins) { + bScore = xins + zins; + bPoint = 0x05; -+ } else { + } else { +- d80 = 1.0 - d83; +- n19 = 2; +- bl = false; + bScore = yins + wins; + bPoint = 0x0A; -+ } + } +- double d84 = d20 + d21; +- if (d84 > 1.0) { +- d79 = d84 - 1.0; +- if (d81 <= d80 && d81 < d79) { +- n20 = 6; +- bl2 = true; +- } else if (d81 > d80 && d80 < d79) { +- n19 = 6; +- bl = true; + + // Closer between (1,0,0,1) and (0,1,1,0) will replace the further of a and b, if closer. + if (xins + wins > yins + zins) { @@ -1352,8 +1641,15 @@ + } else if (aScore < bScore && score > aScore) { + aScore = score; + aPoint = 0x09; -+ } -+ } else { + } + } else { +- d79 = 1.0 - d84; +- if (d81 <= d80 && d81 < d79) { +- n20 = 1; +- bl2 = false; +- } else if (d81 > d80 && d80 < d79) { +- n19 = 1; +- bl = false; + double score = yins + zins; + if (aScore >= bScore && score > bScore) { + bScore = score; @@ -1361,8 +1657,31 @@ + } else if (aScore < bScore && score > aScore) { + aScore = score; + aPoint = 0x06; -+ } -+ } + } + } +- if (bl2 == bl) { +- if (bl2) { +- d10 = d23 - 1.0 - 1.0; +- d7 = d24 - 1.0 - 1.0; +- d6 = d25 - 1.0 - 1.0; +- n6 = n7 + 1; +- n3 = n8 + 1; +- n2 = n9 + 1; +- n18 = (byte)(n20 & n19); +- if ((n18 & 1) != 0) { +- d9 = d23 - 2.0 - 0.6666666666666666; +- d8 = d24 - 0.6666666666666666; +- d5 = d25 - 0.6666666666666666; +- n5 = n7 + 2; +- n4 = n8; +- n = n9; +- } else if ((n18 & 2) != 0) { +- d9 = d23 - 0.6666666666666666; +- d8 = d24 - 2.0 - 0.6666666666666666; +- d5 = d25 - 0.6666666666666666; +- n5 = n7; +- n4 = n8 + 2; +- n = n9; + + // Decide if (1,0,0,0) is closer. + double p1 = 2 - inSum + xins; @@ -1422,11 +1741,17 @@ + xsv_ext1 = xsb - 1; + dx_ext0 = dx0 - 3 * SQUISH_CONSTANT_4D; + dx_ext1 = dx0 + 1 - 2 * SQUISH_CONSTANT_4D; -+ } else { + } else { +- d9 = d23 - 0.6666666666666666; +- d8 = d24 - 0.6666666666666666; +- d5 = d25 - 2.0 - 0.6666666666666666; +- n5 = n7; +- n4 = n8; +- n = n9 + 2; + xsv_ext0 = xsv_ext1 = xsb + 1; + dx_ext0 = dx0 - 1 - 3 * SQUISH_CONSTANT_4D; + dx_ext1 = dx0 - 1 - 2 * SQUISH_CONSTANT_4D; -+ } + } + + if ((c1 & 0x02) == 0) { + ysv_ext0 = ysb; @@ -1558,13 +1883,30 @@ + c1 = aPoint; + c2 = bPoint; } else { -- n2 = n3 + 0; -- n = n4 + 2; -- d5 = d19 + 0.0 - 0.732050807568878; -- d4 = d20 - 2.0 - 0.732050807568878; +- d10 = d23; +- d7 = d24; +- d6 = d25; +- n6 = n7; +- n3 = n8; +- n2 = n9; +- n18 = (byte)(n20 | n19); +- if ((n18 & 1) == 0) { +- d9 = d23 + 1.0 - 0.3333333333333333; +- d8 = d24 - 1.0 - 0.3333333333333333; +- d5 = d25 - 1.0 - 0.3333333333333333; +- n5 = n7 - 1; +- n4 = n8 + 1; +- n = n9 + 1; +- } else if ((n18 & 2) == 0) { +- d9 = d23 - 1.0 - 0.3333333333333333; +- d8 = d24 + 1.0 - 0.3333333333333333; +- d5 = d25 - 1.0 - 0.3333333333333333; +- n5 = n7 + 1; +- n4 = n8 - 1; +- n = n9 + 1; + c1 = bPoint; + c2 = aPoint; - } ++ } + + // Two contributions are the bigger-sided point with each 0 replaced with -1. + if ((c1 & 0x01) == 0) { @@ -1583,14 +1925,20 @@ + if ((c1 & 0x01) == 0x01) { + ysv_ext0 -= 1; + dy_ext0 += 1; -+ } else { + } else { +- d9 = d23 - 1.0 - 0.3333333333333333; +- d8 = d24 - 1.0 - 0.3333333333333333; +- d5 = d25 + 1.0 - 0.3333333333333333; +- n5 = n7 + 1; +- n4 = n8 + 1; +- n = n9 - 1; + ysv_ext1 -= 1; + dy_ext1 += 1; -+ } + } + } else { + ysv_ext0 = ysv_ext1 = ysb + 1; + dy_ext0 = dy_ext1 = dy0 - 1 - SQUISH_CONSTANT_4D; -+ } + } + + if ((c1 & 0x04) == 0) { + zsv_ext0 = zsv_ext1 = zsb; @@ -1763,17 +2111,13 @@ + aScore = xins + yins; + aPoint = 0x0C; } else { -- d5 = d19; -- d4 = d20; -- n2 = n3; -- n = n4; +- int n21; +- if (bl2) { +- n18 = n20; +- n21 = n19; + aScore = zins + wins; + aPoint = 0x03; - } -- ++n3; -- ++n4; -- d19 = d19 - 1.0 - 0.732050807568878; -- d20 = d20 - 1.0 - 0.732050807568878; ++ } + + // Decide between (0,1,0,1) and (1,0,1,0) + if (xins + zins < yins + wins) { @@ -1988,10 +2332,26 @@ + if (aIsBiggerSide) { + c1 = aPoint; + c2 = bPoint; -+ } else { + } else { +- n18 = n19; +- n21 = n20; + c1 = bPoint; + c2 = aPoint; -+ } + } +- if ((n18 & 1) == 0) { +- d10 = d23 + 1.0 - 0.3333333333333333; +- d7 = d24 - 1.0 - 0.3333333333333333; +- d6 = d25 - 1.0 - 0.3333333333333333; +- n6 = n7 - 1; +- n3 = n8 + 1; +- n2 = n9 + 1; +- } else if ((n18 & 2) == 0) { +- d10 = d23 - 1.0 - 0.3333333333333333; +- d7 = d24 + 1.0 - 0.3333333333333333; +- d6 = d25 - 1.0 - 0.3333333333333333; +- n6 = n7 + 1; +- n3 = n8 - 1; +- n2 = n9 + 1; + + // Two contributions are the bigger-sided point with each 1 replaced with 2. + if ((c1 & 0x01) != 0) { @@ -1999,10 +2359,28 @@ + xsv_ext1 = xsb + 1; + dx_ext0 = dx0 - 2 - 3 * SQUISH_CONSTANT_4D; + dx_ext1 = dx0 - 1 - 3 * SQUISH_CONSTANT_4D; -+ } else { + } else { +- d10 = d23 - 1.0 - 0.3333333333333333; +- d7 = d24 - 1.0 - 0.3333333333333333; +- d6 = d25 + 1.0 - 0.3333333333333333; +- n6 = n7 + 1; +- n3 = n8 + 1; +- n2 = n9 - 1; + xsv_ext0 = xsv_ext1 = xsb; + dx_ext0 = dx_ext1 = dx0 - 3 * SQUISH_CONSTANT_4D; -+ } + } +- d9 = d23 - 0.6666666666666666; +- d8 = d24 - 0.6666666666666666; +- d5 = d25 - 0.6666666666666666; +- n5 = n7; +- n4 = n8; +- n = n9; +- if ((n21 & 1) != 0) { +- d9 -= 2.0; +- n5 += 2; +- } else if ((n21 & 2) != 0) { +- d8 -= 2.0; +- n4 += 2; + + if ((c1 & 0x02) != 0) { + ysv_ext0 = ysv_ext1 = ysb + 1; @@ -2014,10 +2392,12 @@ + ysv_ext1 += 1; + dy_ext1 -= 1; + } -+ } else { + } else { +- d5 -= 2.0; +- n += 2; + ysv_ext0 = ysv_ext1 = ysb; + dy_ext0 = dy_ext1 = dy0 - 3 * SQUISH_CONSTANT_4D; -+ } + } + + if ((c1 & 0x04) != 0) { + zsv_ext0 = zsv_ext1 = zsb + 1; @@ -2066,7 +2446,14 @@ + wsv_ext2 -= 2; + dw_ext2 += 2; + } -+ } + } +- double d85 = d23 - 1.0 - 0.3333333333333333; +- double d86 = d24 - 0.0 - 0.3333333333333333; +- double d87 = d25 - 0.0 - 0.3333333333333333; +- double d88 = 2.0 - d85 * d85 - d86 * d86 - d87 * d87; +- if (d88 > 0.0) { +- d88 *= d88; +- d26 += d88 * d88 * this.extrapolate(n7 + 1, n8 + 0, n9 + 0, d85, d86, d87); + + // Contribution (1,1,1,0) + double dx4 = dx0 - 1 - 3 * SQUISH_CONSTANT_4D; @@ -2077,7 +2464,10 @@ + if (attn4 > 0) { + attn4 *= attn4; + value += attn4 * attn4 * extrapolate(xsb + 1, ysb + 1, zsb + 1, wsb + 0, dx4, dy4, dz4, dw4); -+ } + } +- if ((d78 = 2.0 - (d77 = d23 - 0.0 - 0.3333333333333333) * d77 - (d76 = d24 - 1.0 - 0.3333333333333333) * d76 - (d75 = d87) * d75) > 0.0) { +- d78 *= d78; +- d26 += d78 * d78 * this.extrapolate(n7 + 0, n8 + 1, n9 + 0, d77, d76, d75); + + // Contribution (1,1,0,1) + double dx3 = dx4; @@ -2088,7 +2478,10 @@ + if (attn3 > 0) { + attn3 *= attn3; + value += attn3 * attn3 * extrapolate(xsb + 1, ysb + 1, zsb + 0, wsb + 1, dx3, dy3, dz3, dw3); -+ } + } +- if ((d74 = 2.0 - (d73 = d77) * d73 - (d72 = d86) * d72 - (d71 = d25 - 1.0 - 0.3333333333333333) * d71) > 0.0) { +- d74 *= d74; +- d26 += d74 * d74 * this.extrapolate(n7 + 0, n8 + 0, n9 + 1, d73, d72, d71); + + // Contribution (1,0,1,1) + double dx2 = dx4; @@ -2099,7 +2492,10 @@ + if (attn2 > 0) { + attn2 *= attn2; + value += attn2 * attn2 * extrapolate(xsb + 1, ysb + 0, zsb + 1, wsb + 1, dx2, dy2, dz2, dw2); -+ } + } +- if ((d70 = 2.0 - (d69 = d23 - 1.0 - 0.6666666666666666) * d69 - (d68 = d24 - 1.0 - 0.6666666666666666) * d68 - (d67 = d25 - 0.0 - 0.6666666666666666) * d67) > 0.0) { +- d70 *= d70; +- d26 += d70 * d70 * this.extrapolate(n7 + 1, n8 + 1, n9 + 0, d69, d68, d67); + + // Contribution (0,1,1,1) + double dx1 = dx0 - 3 * SQUISH_CONSTANT_4D; @@ -2110,7 +2506,10 @@ + if (attn1 > 0) { + attn1 *= attn1; + value += attn1 * attn1 * extrapolate(xsb + 0, ysb + 1, zsb + 1, wsb + 1, dx1, dy1, dz1, dw1); -+ } + } +- if ((d66 = 2.0 - (d65 = d69) * d65 - (d64 = d24 - 0.0 - 0.6666666666666666) * d64 - (d63 = d25 - 1.0 - 0.6666666666666666) * d63) > 0.0) { +- d66 *= d66; +- d26 += d66 * d66 * this.extrapolate(n7 + 1, n8 + 0, n9 + 1, d65, d64, d63); + + // Contribution (1,1,0,0) + double dx5 = dx0 - 1 - 2 * SQUISH_CONSTANT_4D; @@ -2121,7 +2520,10 @@ + if (attn5 > 0) { + attn5 *= attn5; + value += attn5 * attn5 * extrapolate(xsb + 1, ysb + 1, zsb + 0, wsb + 0, dx5, dy5, dz5, dw5); -+ } + } +- if ((d62 = 2.0 - (d61 = d23 - 0.0 - 0.6666666666666666) * d61 - (d60 = d68) * d60 - (d59 = d63) * d59) > 0.0) { +- d62 *= d62; +- d26 += d62 * d62 * this.extrapolate(n7 + 0, n8 + 1, n9 + 1, d61, d60, d59); + + // Contribution (1,0,1,0) + double dx6 = dx0 - 1 - 2 * SQUISH_CONSTANT_4D; @@ -2132,7 +2534,7 @@ + if (attn6 > 0) { + attn6 *= attn6; + value += attn6 * attn6 * extrapolate(xsb + 1, ysb + 0, zsb + 1, wsb + 0, dx6, dy6, dz6, dw6); -+ } + } + + // Contribution (1,0,0,1) + double dx7 = dx0 - 1 - 2 * SQUISH_CONSTANT_4D; @@ -2178,10 +2580,10 @@ + value += attn10 * attn10 * extrapolate(xsb + 0, ysb + 0, zsb + 1, wsb + 1, dx10, dy10, dz10, dw10); + } } -- d6 = 2.0 - d19 * d19 - d20 * d20; -- if (d6 > 0.0) { -- d6 *= d6; -- d21 += d6 * d6 * this.extrapolate(n3, n4, d19, d20); +- double d89 = 2.0 - d10 * d10 - d7 * d7 - d6 * d6; +- if (d89 > 0.0) { +- d89 *= d89; +- d26 += d89 * d89 * this.extrapolate(n6, n3, n2, d10, d7, d6); + + // First extra vertex + double attn_ext0 = 2 - dx_ext0 * dx_ext0 - dy_ext0 * dy_ext0 - dz_ext0 * dz_ext0 - dw_ext0 * dw_ext0; @@ -2190,9 +2592,9 @@ + attn_ext0 *= attn_ext0; + value += attn_ext0 * attn_ext0 * extrapolate(xsv_ext0, ysv_ext0, zsv_ext0, wsv_ext0, dx_ext0, dy_ext0, dz_ext0, dw_ext0); } -- if ((d3 = 2.0 - d5 * d5 - d4 * d4) > 0.0) { -- d3 *= d3; -- d21 += d3 * d3 * this.extrapolate(n2, n, d5, d4); +- if ((d4 = 2.0 - d9 * d9 - d8 * d8 - d5 * d5) > 0.0) { +- d4 *= d4; +- d26 += d4 * d4 * this.extrapolate(n5, n4, n, d9, d8, d5); + + // Second extra vertex + double attn_ext1 = 2 - dx_ext1 * dx_ext1 - dy_ext1 * dy_ext1 - dz_ext1 * dz_ext1 - dw_ext1 * dw_ext1; @@ -2201,7 +2603,7 @@ + attn_ext1 *= attn_ext1; + value += attn_ext1 * attn_ext1 * extrapolate(xsv_ext1, ysv_ext1, zsv_ext1, wsv_ext1, dx_ext1, dy_ext1, dz_ext1, dw_ext1); } -- return d21 / 47.0; +- return d26 / 103.0; + + // Third extra vertex + double attn_ext2 = 2 - dx_ext2 * dx_ext2 - dy_ext2 * dy_ext2 - dz_ext2 * dz_ext2 - dw_ext2 * dw_ext2; @@ -2213,7 +2615,7 @@ + + return value; } - + - private double extrapolate(int n, int n2, double d, double d2) { - int n3 = this.perm[this.perm[n & 0xFF] + n2 & 0xFF] & 0xE; - return (double)gradients2D[n3] * d + (double)gradients2D[n3 + 1] * d2; @@ -2222,7 +2624,7 @@ + Grad2 grad = permGrad2[perm[xsb & PMASK] ^ (ysb & PMASK)]; + return grad.dx * dx + grad.dy * dy; } - + - private static int fastFloor(double d) { - int n = (int)d; - return d < (double)n ? n - 1 : n; @@ -2231,14 +2633,17 @@ + Grad3 grad = permGrad3[perm[perm[xsb & PMASK] ^ (ysb & PMASK)] ^ (zsb & PMASK)]; + return grad.dx * dx + grad.dy * dy + grad.dz * dz; } --} - + +- private double extrapolate(int n, int n2, int n3, double d, double d2, double d3) { +- short s = this.permGradIndex3D[this.perm[this.perm[n & 0xFF] + n2 & 0xFF] + n3 & 0xFF]; +- return (double)gradients3D[s] * d + (double)gradients3D[s + 1] * d2 + (double)gradients3D[s + 2] * d3; + private double extrapolate(int xsb, int ysb, int zsb, int wsb, double dx, double dy, double dz, double dw) + { + Grad4 grad = permGrad4[perm[perm[perm[xsb & PMASK] ^ (ysb & PMASK)] ^ (zsb & PMASK)] ^ (wsb & PMASK)]; + return grad.dx * dx + grad.dy * dy + grad.dz * dz + grad.dw * dw; -+ } -+ + } +-} + + private static int fastFloor(double x) { + int xi = (int)x; + return x < xi ? xi - 1 : xi; diff --git a/patches/tk/valoeghese/fc0/world/Chunk.patch b/patches/tk/valoeghese/fc0/world/Chunk.patch new file mode 100644 index 0000000..973c3ad --- /dev/null +++ b/patches/tk/valoeghese/fc0/world/Chunk.patch @@ -0,0 +1,16 @@ +--- a/tk/valoeghese/fc0/world/Chunk.java ++++ b/tk/valoeghese/fc0/world/Chunk.java +@@ -481,5 +481,5 @@ + public static T deserialize(ChunkView chunkView, ChunkFactory chunkFactory, BinaryData binaryData) { + int n; +- BaseDataSection baseDataSection; ++ BaseDataSection baseDataSection; + ByteArrayDataSection byteArrayDataSection = binaryData.getByteArray("tiles"); + byte[] arrby = new byte[32768]; +@@ -514,5 +514,5 @@ + baseDataSection = binaryData.method_431("heightmap"); + for (n = 0; n < ((IntArrayDataSection)baseDataSection).size(); ++n) { +- t2.field_440[n] = ((IntArrayDataSection)baseDataSection).method_432(n); ++ ((Chunk) t2).field_440[n] = ((IntArrayDataSection)baseDataSection).method_432(n); + } + } diff --git a/patches/tk/valoeghese/fc0/world/World.patch b/patches/tk/valoeghese/fc0/world/World.patch index 6e506b5..34c4142 100644 --- a/patches/tk/valoeghese/fc0/world/World.patch +++ b/patches/tk/valoeghese/fc0/world/World.patch @@ -1,16 +1,112 @@ --- a/tk/valoeghese/fc0/world/World.java +++ b/tk/valoeghese/fc0/world/World.java -@@ -36,5 +36,5 @@ +@@ -40,5 +40,5 @@ private final Random random; private final long seed; - private final TileView generatingView = new GeneratingTileView(0); + private final TileView generatingView = new GeneratingTileView(); private final ChunkFactory chunkFactory; @Nullable -@@ -79,5 +79,5 @@ +@@ -93,57 +93,56 @@ + @Override + @Nullable +- public Chunk loadChunk(int var1_1, int var2_2, ChunkStatus var3_3) { +- if (!this.isInWorld(var1_1 << 4, 50, var2_2 << 4)) { ++ public Chunk loadChunk(final int x, final int z, final ChunkStatus status) { ++ // Replaced with code decompiled using Procyon ++ if (!this.isInWorld(x << 4, 50, z << 4)) { return null; } -- World world = this; -+ World world = this; - int n3 = n; - int n4 = n2; +- var5_6 = this; +- var6_5 = var1_1; +- var7_4 = var2_2; +- var8_7 = var5_6.getStoredChunk(var6_5, var7_4); +- if (var8_7 != null) { +- v0 = var8_7; +- } else if (var5_6.chunkStorage == null) { +- var5_6.random.setSeed(var5_6.seed + (long)(134 * var6_5) + (long)(-529 * var7_4)); +- v0 = var5_6.chunkGenerator.generate(var5_6.chunkFactory, var5_6, var6_5, var7_4); +- } else { +- v0 = var5_6.chunkStorage.method_159(var5_6.chunkGenerator, var5_6, var6_5, var7_4, var5_6.chunkFactory); ++ final Chunk storedChunk = this.getStoredChunk(x, z); ++ Chunk chunk; ++ if (storedChunk != null) { ++ chunk = storedChunk; + } +- var4_8 = v0; +- switch (_EnumSwitches.GET_CHUNK[var3_3.ordinal()]) { +- case 1: { +- break; +- } +- case 2: +- case 3: { +- if (!var4_8.field_438.method_415()) { +- var4_8.method_412(); ++ else if (this.chunkStorage == null) { ++ this.random.setSeed(this.seed + 134 * x + -529 * z); ++ chunk = this.chunkGenerator.generate(this.chunkFactory, this, x, z); ++ } ++ else { ++ chunk = this.chunkStorage.method_159(this.chunkGenerator, this, x, z, this.chunkFactory); ++ } ++ final Chunk chunk2 = chunk; ++ Label_0242: { ++ switch (_EnumSwitches.GET_CHUNK[status.ordinal()]) { ++ case 2: ++ case 3: { ++ if (!chunk2.field_438.method_415()) { ++ chunk2.method_412(); ++ } ++ if (chunk2.field_441) { ++ chunk2.method_405(this.field_448); ++ chunk2.method_408(); ++ chunk2.field_441 = false; ++ break Label_0242; ++ } ++ if (!chunk2.field_438.method_415()) { ++ chunk2.method_394(this.field_448); ++ } ++ break Label_0242; + } +- if (!var4_8.field_441) ** GOTO lbl27 +- var4_8.method_405(this.field_448); +- var4_8.method_408(); +- var4_8.field_441 = false; +- ** GOTO lbl29 +-lbl27: +- // 1 sources +- +- if (!var4_8.field_438.method_415()) { +- var4_8.method_394(this.field_448); ++ case 4: { ++ if (!chunk2.populated) { ++ chunk2.populated = true; ++ this.random.setSeed(this.seed + 134 * chunk2.x + -529 * chunk2.z + 127L); ++ this.chunkGenerator.populate(this.generatingView, chunk2, this.random); ++ break; ++ } ++ break; + } + } +-lbl29: +- // 5 sources +- +- case 4: { +- if (var4_8.populated) break; +- var4_8.populated = true; +- this.random.setSeed(this.seed + (long)(134 * var4_8.x) + (long)(-529 * var4_8.z) + 127L); +- this.chunkGenerator.populate(this.generatingView, (Chunk)var4_8, this.random); +- break; +- } + } +- var4_8.field_438 = var4_8.field_438.method_416(var3_3); +- if (var4_8 == null) return var4_8; +- this.chunks.put(World.getChunkKey(var1_1, var2_2), var4_8); +- return var4_8; ++ chunk2.field_438 = chunk2.field_438.method_416(status); ++ if (chunk2 != null) { ++ this.chunks.put(getChunkKey(x, z), (T)chunk2); ++ } ++ return chunk2; + } + diff --git a/patches/tk/valoeghese/sod/BinaryData.patch b/patches/tk/valoeghese/sod/BinaryData.patch index 82cbe99..5f3bb3a 100644 --- a/patches/tk/valoeghese/sod/BinaryData.patch +++ b/patches/tk/valoeghese/sod/BinaryData.patch @@ -1,6 +1,6 @@ --- a/tk/valoeghese/sod/BinaryData.java +++ b/tk/valoeghese/sod/BinaryData.java -@@ -43,5 +43,5 @@ +@@ -48,5 +48,5 @@ } - public void writeGzipped(File file) { diff --git a/update-mappings.ps1 b/update-mappings.ps1 new file mode 100644 index 0000000..fd561b7 --- /dev/null +++ b/update-mappings.ps1 @@ -0,0 +1,3 @@ +$from = $args[0] +$to = $args[1] +java -jar .\stitch-0.4.6+local-all.jar updateIntermediary ".\2fc0f18-$from.jar" ".\2fc0f18-$to.jar" ".\intermediary\$from.tiny" ".\intermediary\$to.tiny" ".\matches\$from-$to.match" -t tk/valoeghese/fc0/ -p ^[a-zA-Z$][a-z0-9$/]*[A-Z]?$