diff options
20 files changed, 912 insertions, 335 deletions
@@ -1,73 +1,76 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" path="src/main/java"/> - <classpathentry kind="src" path="src/main/resources"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/deobf/slimeknights/mantle/Mantle/1.12-1.3.1.22/Mantle-1.12-1.3.1.22.jar" sourcepath="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/deobf/slimeknights/mantle/Mantle/1.12-1.3.1.22/Mantle-1.12-1.3.1.22-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/deobf/slimeknights/TConstruct/1.12-2.7.4.42/TConstruct-1.12-2.7.4.42.jar" sourcepath="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/deobf/slimeknights/TConstruct/1.12-2.7.4.42/TConstruct-1.12-2.7.4.42-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/deobf/mezz/jei/jei_1.12/4.7.5.86/jei_1.12-4.7.5.86.jar" sourcepath="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/deobf/mezz/jei/jei_1.12/4.7.5.86/jei_1.12-4.7.5.86-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/deobf/com/github/Azanor/Baubles/master-SNAPSHOT/Baubles-master-SNAPSHOT.jar" sourcepath="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/deobf/com/github/Azanor/Baubles/master-SNAPSHOT/Baubles-master-SNAPSHOT-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/minecraft/net/minecraftforge/forge/1.12-14.21.1.2443/snapshot/20170801/forgeSrc-1.12-14.21.1.2443.jar" sourcepath="C:/Users/Tyler/.gradle/caches/minecraft/net/minecraftforge/forge/1.12-14.21.1.2443/snapshot/20170801/forgeSrc-1.12-14.21.1.2443-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.1/f7be08ec23c21485b9b5a1cf1654c2ec8c58168d/jsr305-3.0.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.1/a2926c057ca3b662b9db194c869bdbe7d3bb8aef/jsr305-3.0.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.mojang/patchy/1.1/aef610b34a1be37fa851825f12372b78424d8903/patchy-1.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.mojang/patchy/1.1/5e398295fbcb8fb590e3e3bddace13f659792e50/patchy-1.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/oshi-project/oshi-core/1.1/9ddf7b048a8d701be231c0f4f95fd986198fd2d8/oshi-core-1.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/oshi-project/oshi-core/1.1/1ec1ab1e6ac5a1572edfd0dd9ac95e83684b8a65/oshi-core-1.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/cb208278274bf12ebdb56c61bd7407e6f774d65a/jna-4.4.0.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/9d45d3dc35711eef7267d8b4fc2c0dc482ef9fd2/jna-4.4.0-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/platform/3.4.0/e3f70017be8100d3d6923f50b3d2ee17714e9c13/platform-3.4.0.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/platform/3.4.0/2f42653596d0044f0ab456620cba54c9cf53c5ca/platform-3.4.0-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.ibm.icu/icu4j-core-mojang/51.2/63d216a9311cca6be337c1e458e587f99d382b84/icu4j-core-mojang-51.2.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.ibm.icu/icu4j-core-mojang/51.2/814397ccbafff1132758e551c37396c528d7f2d7/icu4j-core-mojang-51.2-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.3/cdd846cfc4e0f7eefafc02c0f5dce32b9303aa2a/jopt-simple-5.0.3.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.3/36d4348605fd4605d36c8641495f3e78756e454b/jopt-simple-5.0.3-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/io.netty/netty-all/4.1.9.Final/97860965d6a0a6b98e7f569f3f966727b8db75/netty-all-4.1.9.Final.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/io.netty/netty-all/4.1.9.Final/69b921f5e296428c88c2ea4418e630443a699b06/netty-all-4.1.9.Final-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/21.0/3a3d111be1be1b745edfa7d91678a12d7ed38709/guava-21.0.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/21.0/b9ed26b8c23fe7cd3e6b463b34e54e5c6d9536d5/guava-21.0-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.5/6c6c702c89bfff3cd9e80b04d668c5e190d588c6/commons-lang3-3.5.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.5/f7d878153e86a1cdddf6b37850e00a9f8bff726f/commons-lang3-3.5-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.5/2852e6e05fbb95076fc091f6d1780f1f8fe35e0f/commons-io-2.5.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.5/caf033a4a7c37b4a8ff3ea084cba591539b0b69/commons-io-2.5-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.10/4b95f4897fa13f2cd904aee711aeafc0c5295cd8/commons-codec-1.10.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.10/11fb3d88ae7e3b757d70237064210ceb954a5a04/commons-codec-1.10-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.jutils/jutils/1.0.0/e12fe1fda814bd348c1579329c86943d2cd3c6a6/jutils-1.0.0.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.jutils/jutils/1.0.0/d18678a00b216863206a1bb6190507e02a32971b/jutils-1.0.0-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/c4ba5371a29ac9b2ad6129b1d39ea38750043eff/gson-2.8.0.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/baf95d8519fc1a11d388f8543cb40cd2bb9d66dc/gson-2.8.0-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/1.5.25/9834cdf236c22e84b946bba989e2f94ef5897c3c/authlib-1.5.25.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/1.5.25/18840707f662a3236542716fff61c659584f3e6c/authlib-1.5.25-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.mojang/realms/1.10.17/e6a623bf93a230b503b0e3ae18c196fcd5aa3299/realms-1.10.17.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.8.1/a698750c16740fd5b3871425f4cb3bbaa87f529d/commons-compress-1.8.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.8.1/3caea4421428752206c7a94c3e3097f0c47f1bb8/commons-compress-1.8.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.3.3/18f4247ff4572a074444572cee34647c43e7c9c7/httpclient-4.3.3.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.3.3/65cba03c4f6207f2885f88206fcf52c53f8d111b/httpclient-4.3.3-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.3/f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f/commons-logging-1.1.3.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.3/28bb0405fddaf04f15058fbfbe01fe2780d7d3b6/commons-logging-1.1.3-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/31fbbff1ddbf98f3aa7377c94d33b0447c646b6e/httpcore-4.3.2.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/4809f38359edeea9487f747e09aa58ec8d3a54c5/httpcore-4.3.2-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.1.0/9835253257524c1be7ab50c057aa2d418fb72082/fastutil-7.1.0.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.1.0/4a33438326f2fea664656d63d655c349d4131e14/fastutil-7.1.0-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.8.1/e801d13612e22cad62a3f4f3fe7fdbe6334a8e72/log4j-api-2.8.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.8.1/a5edb6b8c77843c8be98e0cb1f875699e76ee122/log4j-api-2.8.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.8.1/4ac28ff2f1ddf05dae3043a190451e8c46b73c31/log4j-core-2.8.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.8.1/a0a7f683da620c345b502fff04d1e46cde2e8d9/log4j-core-2.8.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.mojang/text2speech/1.10.3/48fd510879dff266c3815947de66e3d4809f8668/text2speech-1.10.3.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.mojang/text2speech/1.10.3/404339fe43d1011ee046a249b0ec7ae9ce04a834/text2speech-1.10.3-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.minecraft/launchwrapper/1.12/111e7bea9c968cdb3d06ef4632bf7ff0824d0f36/launchwrapper-1.12.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.minecraft/launchwrapper/1.12/fd80cad9a1b967ce2ff20529dc54e520d5338d7/launchwrapper-1.12-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/jline/jline/2.13/2d9530d0a25daffaffda7c35037b046b627bb171/jline-2.13.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/jline/jline/2.13/e290282bf7683ae3307e85bdc5d5e08424dfb893/jline-2.13-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-debug-all/5.2/3354e11e2b34215f06dab629ab88e06aca477c19/asm-debug-all-5.2.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-debug-all/5.2/ed60d4287d18996bc940f26656c570532b20d863/asm-debug-all-5.2-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.typesafe.akka/akka-actor_2.11/2.3.3/ed62e9fc709ca0f2ff1a3220daa8b70a2870078e/akka-actor_2.11-2.3.3.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.typesafe.akka/akka-actor_2.11/2.3.3/9dbceb71c4fd943b4eb4607847261075a989d47f/akka-actor_2.11-2.3.3-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.typesafe/config/1.2.1/f771f71fdae3df231bcd54d5ca2d57f0bf93f467/config-1.2.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.typesafe/config/1.2.1/bdacf4f82ce9b29cd474bfde2e91eeb0ca623d28/config-1.2.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors-migration_2.11/1.1.0/dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f/scala-actors-migration_2.11-1.1.0.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors-migration_2.11/1.1.0/6bccac72dae4d369537e313d12087c1ca295e84f/scala-actors-migration_2.11-1.1.0-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.11.1/56ea2e6c025e0821f28d73ca271218b8dd04926a/scala-compiler-2.11.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.11.1/b031d401aabbf7f5f725db500575da3dff90065f/scala-compiler-2.11.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-library_2.11/1.0.2/e517c53a7e9acd6b1668c5a35eccbaa3bab9aac/scala-continuations-library_2.11-1.0.2.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-library_2.11/1.0.2/495afc106eeaa1b3367f6be0bc3768c398e4d360/scala-continuations-library_2.11-1.0.2-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-plugin_2.11.1/1.0.2/f361a3283452c57fa30c1ee69448995de23c60f7/scala-continuations-plugin_2.11.1-1.0.2.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-plugin_2.11.1/1.0.2/c6f3c092ab731f3cf83fdb376ebc465a243c1f4c/scala-continuations-plugin_2.11.1-1.0.2-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.11.1/e11da23da3eabab9f4777b9220e60d44c1aab6a/scala-library-2.11.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.11.1/8355e4b6841f772a287167666bad6e9860ac4d3c/scala-library-2.11.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-parser-combinators_2.11/1.0.1/f05d7345bf5a58924f2837c6c1f4d73a938e1ff0/scala-parser-combinators_2.11-1.0.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-parser-combinators_2.11/1.0.1/34d013c02d0b73794ba2911552896dd9c00f34c3/scala-parser-combinators_2.11-1.0.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.11.1/6580347e61cc7f8e802941e7fde40fa83b8badeb/scala-reflect-2.11.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.11.1/d4c5628e197a0d6af8e9b93a9be32190c547bc8a/scala-reflect-2.11.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-swing_2.11/1.0.1/b1cdd92bd47b1e1837139c1c53020e86bb9112ae/scala-swing_2.11-1.0.1.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-swing_2.11/1.0.1/d4bda4281db2ec74b105c5acf2326d160b79164e/scala-swing_2.11-1.0.1-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.11/1.0.2/820fbca7e524b530fdadc594c39d49a21ea0337e/scala-xml_2.11-1.0.2.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.11/1.0.2/312c3557d1ca0b34820f3b3fc5404a47936ceb26/scala-xml_2.11-1.0.2-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/lzma/lzma/0.0.1/521616dc7487b42bef0e803bd2fa3faf668101d7/lzma-0.0.1.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.sf.trove4j/trove4j/3.0.3/42ccaf4761f0dfdfa805c9e340d99a755907e2dd/trove4j-3.0.3.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.sf.trove4j/trove4j/3.0.3/109c5be93362e6e651e417c51d1863477a22969c/trove4j-3.0.3-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/codecjorbis/20101023/c73b5636faf089d9f00e8732a829577de25237ee/codecjorbis-20101023.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/codecjorbis/20101023/4ca2436396bc14ebd78b7db1d4e11ca607c8705e/codecjorbis-20101023-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/codecwav/20101023/12f031cfe88fef5c1dd36c563c0a3a69bd7261da/codecwav-20101023.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/codecwav/20101023/71ec00b9b9c1a6a2c3a8a25f481a23ddb5b21ddb/codecwav-20101023-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/libraryjavasound/20101123/5c5e304366f75f9eaa2e8cca546a1fb6109348b3/libraryjavasound-20101123.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/libraryjavasound/20101123/945ff5711de27751cf699641d1ea316ba6cf7589/libraryjavasound-20101123-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/librarylwjglopenal/20100824/73e80d0794c39665aec3f62eee88ca91676674ef/librarylwjglopenal-20100824.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/librarylwjglopenal/20100824/ecfc8dac1d41bef748997e4edf563d486923ee1e/librarylwjglopenal-20100824-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/soundsystem/20120107/419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6/soundsystem-20120107.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/com.paulscode/soundsystem/20120107/1b9f4eb11ef11fede7fd76a2e5e8203c2a8adcd/soundsystem-20120107-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput/2.0.5/39c7796b469a600f72380316f6b1f11db6c2c7c4/jinput-2.0.5.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput/2.0.5/82604cfeb87b9ab70ed70aa19a137de8ceb21504/jinput-2.0.5-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl/2.9.4-nightly-20150209/697517568c68e78ae0b4544145af031c81082dfe/lwjgl-2.9.4-nightly-20150209.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl/2.9.4-nightly-20150209/7da2cff65127b558a66e8e38456174161723d3a7/lwjgl-2.9.4-nightly-20150209-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl_util/2.9.4-nightly-20150209/d51a7c040a721d13efdfbd34f8b257b2df882ad0/lwjgl_util-2.9.4-nightly-20150209.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl_util/2.9.4-nightly-20150209/2e3787f55c68a245e994f88755795b3a7684b3/lwjgl_util-2.9.4-nightly-20150209-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/java3d/vecmath/1.5.2/79846ba34cbd89e2422d74d53752f993dcc2ccaf/vecmath-1.5.2.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/java3d/vecmath/1.5.2/42442b23189fbef9353c1751055610b63dd57e85/vecmath-1.5.2-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/ca.weblite/java-objc-bridge/1.0.0/6ef160c3133a78de015830860197602ca1c855d3/java-objc-bridge-1.0.0.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/ca.weblite/java-objc-bridge/1.0.0/865837a198189aee737019561ece842827f24278/java-objc-bridge-1.0.0-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.fusesource.jansi/jansi/1.11/655c643309c2f45a56a747fda70e3fadf57e9f11/jansi-1.11.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.fusesource.jansi/jansi/1.11/2f0e4b53b6b0eec426dad7118bf54b3deb58000b/jansi-1.11-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors/2.11.0/8ccfb6541de179bb1c4d45cf414acee069b7f78b/scala-actors-2.11.0.jar" sourcepath="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors/2.11.0/e1dfa274766d5278166b0d660294fe96396693b2/scala-actors-2.11.0-sources.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput-platform/2.0.5/7ff832a6eb9ab6a767f1ade2b548092d0fa64795/jinput-platform-2.0.5-natives-linux.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput-platform/2.0.5/385ee093e01f587f30ee1c8a2ee7d408fd732e16/jinput-platform-2.0.5-natives-windows.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput-platform/2.0.5/53f9c919f34d2ca9de8c51fc4e1e8282029a9232/jinput-platform-2.0.5-natives-osx.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl-platform/2.9.4-nightly-20150209/b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl-platform/2.9.4-nightly-20150209/931074f46c795d2f7b30ed6395df5715cfd7675b/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl-platform/2.9.4-nightly-20150209/bcab850f8f487c3f4c4dbabde778bb82bd1a40ed/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/compileDummy.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/minecraft/deobfedDeps/providedDummy.jar"/> - <classpathentry kind="lib" path="C:/Users/Tyler/.gradle/caches/minecraft/net/minecraftforge/forge/1.12-14.21.1.2443/start"/> - <classpathentry kind="output" path="bin"/> + <classpathentry path="src/main/java" kind="src"/> + <classpathentry path="src/main/resources" kind="src"/> + <classpathentry path="bin" kind="output"/> + <classpathentry path="src/api/java" kind="src"/> + <classpathentry path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/" kind="con"/> + <classpathentry path="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/deobf/slimeknights/mantle/Mantle/1.12-1.3.2.25/Mantle-1.12-1.3.2.25.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/deobf/slimeknights/mantle/Mantle/1.12-1.3.2.25/Mantle-1.12-1.3.2.25-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/deobf/slimeknights/TConstruct/1.12.2-2.9.1.70/TConstruct-1.12.2-2.9.1.70.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/deobf/slimeknights/TConstruct/1.12.2-2.9.1.70/TConstruct-1.12.2-2.9.1.70-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/deobf/mezz/jei/jei_1.12.2/4.9.1.187/jei_1.12.2-4.9.1.187.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/deobf/mezz/jei/jei_1.12.2/4.9.1.187/jei_1.12.2-4.9.1.187-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/deobf/com/github/Azanor/Baubles/master-SNAPSHOT/Baubles-master-SNAPSHOT.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/deobf/com/github/Azanor/Baubles/master-SNAPSHOT/Baubles-master-SNAPSHOT-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/minecraft/net/minecraftforge/forge/1.12.2-14.23.3.2702/snapshot/20180521/forgeSrc-1.12.2-14.23.3.2702.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/minecraft/net/minecraftforge/forge/1.12.2-14.23.3.2702/snapshot/20180521/forgeSrc-1.12.2-14.23.3.2702-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.1/f7be08ec23c21485b9b5a1cf1654c2ec8c58168d/jsr305-3.0.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.1/a2926c057ca3b662b9db194c869bdbe7d3bb8aef/jsr305-3.0.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/patchy/1.1/aef610b34a1be37fa851825f12372b78424d8903/patchy-1.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/patchy/1.1/5e398295fbcb8fb590e3e3bddace13f659792e50/patchy-1.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/oshi-project/oshi-core/1.1/9ddf7b048a8d701be231c0f4f95fd986198fd2d8/oshi-core-1.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/oshi-project/oshi-core/1.1/1ec1ab1e6ac5a1572edfd0dd9ac95e83684b8a65/oshi-core-1.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/cb208278274bf12ebdb56c61bd7407e6f774d65a/jna-4.4.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/9d45d3dc35711eef7267d8b4fc2c0dc482ef9fd2/jna-4.4.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/platform/3.4.0/e3f70017be8100d3d6923f50b3d2ee17714e9c13/platform-3.4.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/platform/3.4.0/2f42653596d0044f0ab456620cba54c9cf53c5ca/platform-3.4.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.ibm.icu/icu4j-core-mojang/51.2/63d216a9311cca6be337c1e458e587f99d382b84/icu4j-core-mojang-51.2.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.ibm.icu/icu4j-core-mojang/51.2/814397ccbafff1132758e551c37396c528d7f2d7/icu4j-core-mojang-51.2-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.3/cdd846cfc4e0f7eefafc02c0f5dce32b9303aa2a/jopt-simple-5.0.3.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.3/36d4348605fd4605d36c8641495f3e78756e454b/jopt-simple-5.0.3-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/io.netty/netty-all/4.1.9.Final/97860965d6a0a6b98e7f569f3f966727b8db75/netty-all-4.1.9.Final.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/io.netty/netty-all/4.1.9.Final/69b921f5e296428c88c2ea4418e630443a699b06/netty-all-4.1.9.Final-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/21.0/3a3d111be1be1b745edfa7d91678a12d7ed38709/guava-21.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/21.0/b9ed26b8c23fe7cd3e6b463b34e54e5c6d9536d5/guava-21.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.5/6c6c702c89bfff3cd9e80b04d668c5e190d588c6/commons-lang3-3.5.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.5/f7d878153e86a1cdddf6b37850e00a9f8bff726f/commons-lang3-3.5-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.5/2852e6e05fbb95076fc091f6d1780f1f8fe35e0f/commons-io-2.5.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.5/caf033a4a7c37b4a8ff3ea084cba591539b0b69/commons-io-2.5-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.10/4b95f4897fa13f2cd904aee711aeafc0c5295cd8/commons-codec-1.10.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.10/11fb3d88ae7e3b757d70237064210ceb954a5a04/commons-codec-1.10-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jutils/jutils/1.0.0/e12fe1fda814bd348c1579329c86943d2cd3c6a6/jutils-1.0.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jutils/jutils/1.0.0/d18678a00b216863206a1bb6190507e02a32971b/jutils-1.0.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/c4ba5371a29ac9b2ad6129b1d39ea38750043eff/gson-2.8.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/baf95d8519fc1a11d388f8543cb40cd2bb9d66dc/gson-2.8.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/1.5.25/9834cdf236c22e84b946bba989e2f94ef5897c3c/authlib-1.5.25.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/1.5.25/18840707f662a3236542716fff61c659584f3e6c/authlib-1.5.25-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/realms/1.10.19/c0e1cddb173faa8bf69a4236211cfd0af6c6150d/realms-1.10.19.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.8.1/a698750c16740fd5b3871425f4cb3bbaa87f529d/commons-compress-1.8.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.8.1/3caea4421428752206c7a94c3e3097f0c47f1bb8/commons-compress-1.8.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.3.3/18f4247ff4572a074444572cee34647c43e7c9c7/httpclient-4.3.3.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.3.3/65cba03c4f6207f2885f88206fcf52c53f8d111b/httpclient-4.3.3-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.3/f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f/commons-logging-1.1.3.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.3/28bb0405fddaf04f15058fbfbe01fe2780d7d3b6/commons-logging-1.1.3-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/31fbbff1ddbf98f3aa7377c94d33b0447c646b6e/httpcore-4.3.2.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/4809f38359edeea9487f747e09aa58ec8d3a54c5/httpcore-4.3.2-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.1.0/9835253257524c1be7ab50c057aa2d418fb72082/fastutil-7.1.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.1.0/4a33438326f2fea664656d63d655c349d4131e14/fastutil-7.1.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.8.1/e801d13612e22cad62a3f4f3fe7fdbe6334a8e72/log4j-api-2.8.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.8.1/a5edb6b8c77843c8be98e0cb1f875699e76ee122/log4j-api-2.8.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.8.1/4ac28ff2f1ddf05dae3043a190451e8c46b73c31/log4j-core-2.8.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.8.1/a0a7f683da620c345b502fff04d1e46cde2e8d9/log4j-core-2.8.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/text2speech/1.10.3/48fd510879dff266c3815947de66e3d4809f8668/text2speech-1.10.3.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/text2speech/1.10.3/404339fe43d1011ee046a249b0ec7ae9ce04a834/text2speech-1.10.3-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.minecraft/launchwrapper/1.12/111e7bea9c968cdb3d06ef4632bf7ff0824d0f36/launchwrapper-1.12.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.minecraft/launchwrapper/1.12/fd80cad9a1b967ce2ff20529dc54e520d5338d7/launchwrapper-1.12-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/jline/jline/2.13/2d9530d0a25daffaffda7c35037b046b627bb171/jline-2.13.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/jline/jline/2.13/e290282bf7683ae3307e85bdc5d5e08424dfb893/jline-2.13-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-debug-all/5.2/3354e11e2b34215f06dab629ab88e06aca477c19/asm-debug-all-5.2.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-debug-all/5.2/ed60d4287d18996bc940f26656c570532b20d863/asm-debug-all-5.2-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.typesafe.akka/akka-actor_2.11/2.3.3/ed62e9fc709ca0f2ff1a3220daa8b70a2870078e/akka-actor_2.11-2.3.3.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.typesafe.akka/akka-actor_2.11/2.3.3/9dbceb71c4fd943b4eb4607847261075a989d47f/akka-actor_2.11-2.3.3-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.typesafe/config/1.2.1/f771f71fdae3df231bcd54d5ca2d57f0bf93f467/config-1.2.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.typesafe/config/1.2.1/bdacf4f82ce9b29cd474bfde2e91eeb0ca623d28/config-1.2.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors-migration_2.11/1.1.0/dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f/scala-actors-migration_2.11-1.1.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors-migration_2.11/1.1.0/6bccac72dae4d369537e313d12087c1ca295e84f/scala-actors-migration_2.11-1.1.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.11.1/56ea2e6c025e0821f28d73ca271218b8dd04926a/scala-compiler-2.11.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.11.1/b031d401aabbf7f5f725db500575da3dff90065f/scala-compiler-2.11.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-library_2.11/1.0.2/e517c53a7e9acd6b1668c5a35eccbaa3bab9aac/scala-continuations-library_2.11-1.0.2.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-library_2.11/1.0.2/495afc106eeaa1b3367f6be0bc3768c398e4d360/scala-continuations-library_2.11-1.0.2-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-plugin_2.11.1/1.0.2/f361a3283452c57fa30c1ee69448995de23c60f7/scala-continuations-plugin_2.11.1-1.0.2.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-plugin_2.11.1/1.0.2/c6f3c092ab731f3cf83fdb376ebc465a243c1f4c/scala-continuations-plugin_2.11.1-1.0.2-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.11.1/e11da23da3eabab9f4777b9220e60d44c1aab6a/scala-library-2.11.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.11.1/8355e4b6841f772a287167666bad6e9860ac4d3c/scala-library-2.11.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-parser-combinators_2.11/1.0.1/f05d7345bf5a58924f2837c6c1f4d73a938e1ff0/scala-parser-combinators_2.11-1.0.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-parser-combinators_2.11/1.0.1/34d013c02d0b73794ba2911552896dd9c00f34c3/scala-parser-combinators_2.11-1.0.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.11.1/6580347e61cc7f8e802941e7fde40fa83b8badeb/scala-reflect-2.11.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.11.1/d4c5628e197a0d6af8e9b93a9be32190c547bc8a/scala-reflect-2.11.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-swing_2.11/1.0.1/b1cdd92bd47b1e1837139c1c53020e86bb9112ae/scala-swing_2.11-1.0.1.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-swing_2.11/1.0.1/d4bda4281db2ec74b105c5acf2326d160b79164e/scala-swing_2.11-1.0.1-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.11/1.0.2/820fbca7e524b530fdadc594c39d49a21ea0337e/scala-xml_2.11-1.0.2.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.11/1.0.2/312c3557d1ca0b34820f3b3fc5404a47936ceb26/scala-xml_2.11-1.0.2-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/lzma/lzma/0.0.1/521616dc7487b42bef0e803bd2fa3faf668101d7/lzma-0.0.1.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.sf.trove4j/trove4j/3.0.3/42ccaf4761f0dfdfa805c9e340d99a755907e2dd/trove4j-3.0.3.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.sf.trove4j/trove4j/3.0.3/109c5be93362e6e651e417c51d1863477a22969c/trove4j-3.0.3-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.5.3/7dc72b6d6d8a6dced3d294ed54c2cc3515ade9f4/maven-artifact-3.5.3.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.5.3/25c6b5e0103ae09bc1cac02ee6dff968bacbdba9/maven-artifact-3.5.3-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/codecjorbis/20101023/c73b5636faf089d9f00e8732a829577de25237ee/codecjorbis-20101023.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/codecjorbis/20101023/4ca2436396bc14ebd78b7db1d4e11ca607c8705e/codecjorbis-20101023-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/codecwav/20101023/12f031cfe88fef5c1dd36c563c0a3a69bd7261da/codecwav-20101023.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/codecwav/20101023/71ec00b9b9c1a6a2c3a8a25f481a23ddb5b21ddb/codecwav-20101023-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/libraryjavasound/20101123/5c5e304366f75f9eaa2e8cca546a1fb6109348b3/libraryjavasound-20101123.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/libraryjavasound/20101123/945ff5711de27751cf699641d1ea316ba6cf7589/libraryjavasound-20101123-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/librarylwjglopenal/20100824/73e80d0794c39665aec3f62eee88ca91676674ef/librarylwjglopenal-20100824.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/librarylwjglopenal/20100824/ecfc8dac1d41bef748997e4edf563d486923ee1e/librarylwjglopenal-20100824-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/soundsystem/20120107/419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6/soundsystem-20120107.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/soundsystem/20120107/1b9f4eb11ef11fede7fd76a2e5e8203c2a8adcd/soundsystem-20120107-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput/2.0.5/39c7796b469a600f72380316f6b1f11db6c2c7c4/jinput-2.0.5.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput/2.0.5/82604cfeb87b9ab70ed70aa19a137de8ceb21504/jinput-2.0.5-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl/2.9.4-nightly-20150209/697517568c68e78ae0b4544145af031c81082dfe/lwjgl-2.9.4-nightly-20150209.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl/2.9.4-nightly-20150209/7da2cff65127b558a66e8e38456174161723d3a7/lwjgl-2.9.4-nightly-20150209-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl_util/2.9.4-nightly-20150209/d51a7c040a721d13efdfbd34f8b257b2df882ad0/lwjgl_util-2.9.4-nightly-20150209.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl_util/2.9.4-nightly-20150209/2e3787f55c68a245e994f88755795b3a7684b3/lwjgl_util-2.9.4-nightly-20150209-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/java3d/vecmath/1.5.2/79846ba34cbd89e2422d74d53752f993dcc2ccaf/vecmath-1.5.2.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/java3d/vecmath/1.5.2/42442b23189fbef9353c1751055610b63dd57e85/vecmath-1.5.2-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/ca.weblite/java-objc-bridge/1.0.0/6ef160c3133a78de015830860197602ca1c855d3/java-objc-bridge-1.0.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/ca.weblite/java-objc-bridge/1.0.0/865837a198189aee737019561ece842827f24278/java-objc-bridge-1.0.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.fusesource.jansi/jansi/1.11/655c643309c2f45a56a747fda70e3fadf57e9f11/jansi-1.11.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.fusesource.jansi/jansi/1.11/2f0e4b53b6b0eec426dad7118bf54b3deb58000b/jansi-1.11-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors/2.11.0/8ccfb6541de179bb1c4d45cf414acee069b7f78b/scala-actors-2.11.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors/2.11.0/e1dfa274766d5278166b0d660294fe96396693b2/scala-actors-2.11.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-utils/3.1.0/60eecb6f15abdb1c653ad80abaac6fe188b3feaa/plexus-utils-3.1.0.jar" kind="lib" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-utils/3.1.0/d4062783613c4c6cf909c939d15fd1f2b584db03/plexus-utils-3.1.0-sources.jar"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput-platform/2.0.5/7ff832a6eb9ab6a767f1ade2b548092d0fa64795/jinput-platform-2.0.5-natives-linux.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput-platform/2.0.5/385ee093e01f587f30ee1c8a2ee7d408fd732e16/jinput-platform-2.0.5-natives-windows.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput-platform/2.0.5/53f9c919f34d2ca9de8c51fc4e1e8282029a9232/jinput-platform-2.0.5-natives-osx.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl-platform/2.9.4-nightly-20150209/b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl-platform/2.9.4-nightly-20150209/931074f46c795d2f7b30ed6395df5715cfd7675b/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl-platform/2.9.4-nightly-20150209/bcab850f8f487c3f4c4dbabde778bb82bd1a40ed/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/compileDummy.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/minecraft/deobfedDeps/providedDummy.jar" kind="lib"/> + <classpathentry path="C:/Users/T/.gradle/caches/minecraft/net/minecraftforge/forge/1.12.2-14.23.3.2702/start" kind="lib"/> </classpath> @@ -14,9 +14,9 @@ </buildSpec> <linkedResources> <link> - <name>.link1</name> + <name>.link0</name> <type>2</type> - <location>C:/Users/T/.gradle/caches/minecraft/net/minecraftforge/forge/1.12-14.21.1.2443/start</location> + <location>C:/Users/T/.gradle/caches/minecraft/net/minecraftforge/forge/1.12.2-14.23.3.2702/start</location> </link> </linkedResources> </projectDescription> diff --git a/Mantle-1.12-1.3.1.DEV.75b9d4b-deobf.jar b/Mantle-1.12-1.3.1.DEV.75b9d4b-deobf.jar Binary files differnew file mode 100644 index 0000000..7fa9eee --- /dev/null +++ b/Mantle-1.12-1.3.1.DEV.75b9d4b-deobf.jar diff --git a/Mantle-1.12-1.3.1.DEV.75b9d4b-sources.jar b/Mantle-1.12-1.3.1.DEV.75b9d4b-sources.jar Binary files differnew file mode 100644 index 0000000..fb7cb38 --- /dev/null +++ b/Mantle-1.12-1.3.1.DEV.75b9d4b-sources.jar diff --git a/TConstruct-1.12-2.7.2.DEV.2744c27-deobf.jar b/TConstruct-1.12-2.7.2.DEV.2744c27-deobf.jar Binary files differnew file mode 100644 index 0000000..7b8e391 --- /dev/null +++ b/TConstruct-1.12-2.7.2.DEV.2744c27-deobf.jar diff --git a/TConstruct-1.12-2.7.2.DEV.2744c27-sources.jar b/TConstruct-1.12-2.7.2.DEV.2744c27-sources.jar Binary files differnew file mode 100644 index 0000000..3693d54 --- /dev/null +++ b/TConstruct-1.12-2.7.2.DEV.2744c27-sources.jar diff --git a/Tinkers-Defense_Client.launch b/Tinkers-Defense_Client.launch index 1111dfe..8ef933c 100644 --- a/Tinkers-Defense_Client.launch +++ b/Tinkers-Defense_Client.launch @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"><stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="GradleStart"/><stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Tinkers-Defense"/><stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="F:\Users\Tyler\Documents\Tinkers-Defense\run"/><stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value=" -DFORGE_FORCE_FRAME_RECALC=true"/></launchConfiguration>
\ No newline at end of file +<?xml version="1.0" encoding="UTF-8" standalone="no"?><launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"><stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="GradleStart"/><stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Tinkers-Defense"/><stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="C:\Users\T\Documents\Tinkers-Defense\run"/><stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value=" -DFORGE_FORCE_FRAME_RECALC=true"/></launchConfiguration>
\ No newline at end of file diff --git a/Tinkers-Defense_Server.launch b/Tinkers-Defense_Server.launch index 5e85509..3cf3f1c 100644 --- a/Tinkers-Defense_Server.launch +++ b/Tinkers-Defense_Server.launch @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"><stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="GradleStartServer"/><stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Tinkers-Defense"/><stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="F:\Users\Tyler\Documents\Tinkers-Defense\run"/><stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value=" -DFORGE_FORCE_FRAME_RECALC=true"/></launchConfiguration>
\ No newline at end of file +<?xml version="1.0" encoding="UTF-8" standalone="no"?><launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"><stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="GradleStartServer"/><stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Tinkers-Defense"/><stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="C:\Users\T\Documents\Tinkers-Defense\run"/><stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value=" -DFORGE_FORCE_FRAME_RECALC=true"/></launchConfiguration>
\ No newline at end of file diff --git a/build.gradle b/build.gradle index 142fd44..991191f 100644 --- a/build.gradle +++ b/build.gradle @@ -64,7 +64,7 @@ srcCompat = JavaVersion.VERSION_1_8 targetCompat = JavaVersion.VERSION_1_8 minecraft { - version = "1.12-14.21.1.2443" + version = "1.12.2-14.23.3.2702" runDir = "run" // the mappings can be changed at any time, and must be in the following format. @@ -72,7 +72,7 @@ minecraft { // stable_# stables are built at the discretion of the MCP team. // Use non-default mappings at your own risk. they may not allways work. // simply re-run your setup task after changing the mappings to update your workspace. - mappings = "snapshot_20170801" + mappings = "snapshot_20180521" // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. } @@ -98,9 +98,9 @@ dependencies { // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html - deobfCompile "slimeknights.mantle:Mantle:1.12-1.3.1.+" - deobfCompile "slimeknights:TConstruct:1.12-2.7.4.+" - deobfCompile "mezz.jei:jei_1.12:4.7.+:api" + deobfCompile "slimeknights.mantle:Mantle:1.12-1.3.2.+" + deobfCompile "slimeknights:TConstruct:1.12.2-2.9.1.+" + deobfCompile "mezz.jei:jei_1.12.2:4.9.+:api" deobfCompile "com.github.Azanor:Baubles:master-SNAPSHOT" } diff --git a/src/main/java/lance5057/tDefense/core/blocks/ArmorStationBlock.java b/src/main/java/lance5057/tDefense/core/blocks/ArmorStationBlock.java new file mode 100644 index 0000000..71abf9f --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/blocks/ArmorStationBlock.java @@ -0,0 +1,62 @@ +package lance5057.tDefense.core.blocks; + +import javax.annotation.Nonnull; + +import lance5057.tDefense.core.tileentities.ArmorStationTile; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.state.BlockStateContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.common.property.ExtendedBlockState; +import net.minecraftforge.common.property.IUnlistedProperty; +import slimeknights.mantle.inventory.BaseContainer; +import slimeknights.tconstruct.TConstruct; +import slimeknights.tconstruct.library.TinkerRegistry; +import slimeknights.tconstruct.shared.block.BlockTable; +import slimeknights.tconstruct.tools.common.block.ITinkerStationBlock; + +public class ArmorStationBlock extends BlockTable implements ITinkerStationBlock { + + public ArmorStationBlock() { + super(Material.WOOD); + this.setCreativeTab(TinkerRegistry.tabGeneral); + this.setSoundType(SoundType.WOOD); + this.setResistance(5f); + this.setHardness(1f); + this.setHarvestLevel("axe", 0); + } + + @Nonnull + @Override + public TileEntity createNewTileEntity(@Nonnull World worldIn, int meta) { + return new ArmorStationTile(); + } + + @Nonnull + @Override + protected BlockStateContainer createBlockState() { + return new ExtendedBlockState(this, new IProperty[]{}, new IUnlistedProperty[]{TEXTURE, INVENTORY, FACING}); + } + + @Override + public boolean openGui(EntityPlayer player, World world, BlockPos pos) { + if(!world.isRemote) { + player.openGui(TConstruct.instance, 0, world, pos.getX(), pos.getY(), pos.getZ()); + if(player.openContainer instanceof BaseContainer) { + ((BaseContainer) player.openContainer).syncOnOpen((EntityPlayerMP) player); + } + } + return true; + } + + @Override + public int getGuiNumber(IBlockState state) { + return 55; + } +}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/core/blocks/Stations.java b/src/main/java/lance5057/tDefense/core/blocks/Stations.java deleted file mode 100644 index eea9afb..0000000 --- a/src/main/java/lance5057/tDefense/core/blocks/Stations.java +++ /dev/null @@ -1,243 +0,0 @@ -//package lance5057.tDefense.core.blocks; -// -//import java.util.List; -//import java.util.Locale; -// -//import javax.annotation.Nonnull; -// -//import com.google.common.collect.Lists; -// -//import net.minecraft.block.Block; -//import net.minecraft.block.SoundType; -//import net.minecraft.block.material.Material; -//import net.minecraft.block.properties.IProperty; -//import net.minecraft.block.properties.PropertyEnum; -//import net.minecraft.block.state.BlockStateContainer; -//import net.minecraft.block.state.IBlockState; -//import net.minecraft.creativetab.CreativeTabs; -//import net.minecraft.entity.player.EntityPlayer; -//import net.minecraft.entity.player.EntityPlayerMP; -//import net.minecraft.item.Item; -//import net.minecraft.item.ItemStack; -//import net.minecraft.tileentity.TileEntity; -//import net.minecraft.util.IStringSerializable; -//import net.minecraft.util.math.AxisAlignedBB; -//import net.minecraft.util.math.BlockPos; -//import net.minecraft.util.math.RayTraceResult; -//import net.minecraft.util.math.Vec3d; -//import net.minecraft.world.IBlockAccess; -//import net.minecraft.world.World; -//import net.minecraftforge.common.property.ExtendedBlockState; -//import net.minecraftforge.common.property.IUnlistedProperty; -//import net.minecraftforge.fml.relauncher.Side; -//import net.minecraftforge.fml.relauncher.SideOnly; -//import net.minecraftforge.oredict.OreDictionary; -//import slimeknights.mantle.inventory.BaseContainer; -//import slimeknights.tconstruct.TConstruct; -//import slimeknights.tconstruct.common.config.Config; -//import slimeknights.tconstruct.library.TinkerRegistry; -//import slimeknights.tconstruct.shared.block.BlockTable; -//import slimeknights.tconstruct.tools.common.block.ITinkerStationBlock; -//import slimeknights.tconstruct.tools.common.tileentity.TileCraftingStation; -//import slimeknights.tconstruct.tools.common.tileentity.TilePartBuilder; -//import slimeknights.tconstruct.tools.common.tileentity.TilePartChest; -//import slimeknights.tconstruct.tools.common.tileentity.TilePatternChest; -//import slimeknights.tconstruct.tools.common.tileentity.TileStencilTable; -//import slimeknights.tconstruct.tools.common.tileentity.TileToolStation; -// -//public class Stations extends BlockTable implements ITinkerStationBlock { -// -// public static final PropertyEnum<TableTypes> TABLES = PropertyEnum.func_177709_a("type", TableTypes.class); -// -// public Stations() { -// super(Material.field_151575_d); -// this.func_149647_a(TinkerRegistry.tabGeneral); -// -// this.func_149672_a(SoundType.field_185848_a); -// this.func_149752_b(5f); -// this.func_149711_c(1f); -// -// // set axe as effective tool for all variants -// this.setHarvestLevel("axe", 0); -// } -// -// -// @Nonnull -// @Override -// public TileEntity func_149915_a(@Nonnull World worldIn, int meta) { -// switch(TableTypes.fromMeta(meta)) { -// case CraftingStation: -// return new TileCraftingStation(); -// case StencilTable: -// return new TileStencilTable(); -// case PartBuilder: -// return new TilePartBuilder(); -// case ToolStation: -// return new TileToolStation(); -// case PatternChest: -// return new TilePatternChest(); -// case PartChest: -// return new TilePartChest(); -// default: -// return super.func_149915_a(worldIn, meta); -// } -// } -// -// @Override -// public boolean openGui(EntityPlayer player, World world, BlockPos pos) { -// if(!world.field_72995_K) { -// player.openGui(TConstruct.instance, 0, world, pos.func_177958_n(), pos.func_177956_o(), pos.func_177952_p()); -// if(player.field_71070_bA instanceof BaseContainer) { -// ((BaseContainer) player.field_71070_bA).syncOnOpen((EntityPlayerMP) player); -// } -// } -// return true; -// } -// -// @SideOnly(Side.CLIENT) -// @Override -// public void func_149666_a(@Nonnull Item itemIn, CreativeTabs tab, List<ItemStack> list) { -// // crafting station is boring -// list.add(new ItemStack(this, 1, TableTypes.CraftingStation.meta)); -// -// // planks for the stencil table -// addBlocksFromOredict("plankWood", TableTypes.StencilTable.meta, list); -// -// list.add(new ItemStack(this, 1, TableTypes.PatternChest.meta)); -// -// // logs for the part builder -// addBlocksFromOredict("logWood", TableTypes.PartBuilder.meta, list); -// -// list.add(new ItemStack(this, 1, TableTypes.PartChest.meta)); -// -// // stencil table is boring -// //addBlocksFromOredict("workbench", TableTypes.ToolStation.ordinal(), list); -// list.add(new ItemStack(this, 1, TableTypes.ToolStation.meta)); -// -// } -// -// private void addBlocksFromOredict(String oredict, int meta, List<ItemStack> list) { -// for(ItemStack stack : OreDictionary.getOres(oredict)) { -// Block block = func_149634_a(stack.func_77973_b()); -// int blockMeta = stack.func_77952_i(); -// -// if(blockMeta == OreDictionary.WILDCARD_VALUE) { -// List<ItemStack> subBlocks = Lists.newLinkedList(); -// block.func_149666_a(stack.func_77973_b(), null, subBlocks); -// -// for(ItemStack subBlock : subBlocks) { -// list.add(createItemstack(this, meta, func_149634_a(subBlock.func_77973_b()), subBlock.func_77952_i())); -// if(!Config.listAllTables) { -// return; -// } -// } -// } -// else { -// list.add(createItemstack(this, meta, block, blockMeta)); -// if(!Config.listAllTables) { -// return; -// } -// } -// } -// } -// -// @Override -// protected boolean keepInventory(IBlockState state) { -// return Config.chestsKeepInventory && -// (state.func_177229_b(TABLES) == TableTypes.PatternChest || state.func_177229_b(TABLES) == TableTypes.PartChest); -// } -// -// @Nonnull -// @Override -// protected BlockStateContainer func_180661_e() { -// return new ExtendedBlockState(this, new IProperty[]{TABLES}, new IUnlistedProperty[]{TEXTURE, INVENTORY, FACING}); -// } -// -// @Nonnull -// @Override -// public IBlockState func_176203_a(int meta) { -// return this.func_176223_P().func_177226_a(TABLES, TableTypes.fromMeta(meta)); -// } -// -// @Override -// public int func_176201_c(IBlockState state) { -// return (state.func_177229_b(TABLES)).meta; -// } -// -// /* Bounds */ -// private static AxisAlignedBB BOUNDS_Chest = new AxisAlignedBB(0, 0, 0, 1, 0.875, 1); -// -// @Nonnull -// @Override -// public AxisAlignedBB func_185496_a(IBlockState state, IBlockAccess source, BlockPos pos) { -// if(state.func_177229_b(TABLES).isChest) { -// return BOUNDS_Chest; -// } -// -// return super.func_185496_a(state, source, pos); -// } -// -// @Override -// public RayTraceResult func_180636_a(IBlockState blockState, @Nonnull World worldIn, @Nonnull BlockPos pos, @Nonnull Vec3d start, @Nonnull Vec3d end) { -// if(blockState.func_177229_b(TABLES).isChest) { -// return func_185503_a(pos, start, end, BOUNDS_Chest); -// } -// -// return super.func_180636_a(blockState, worldIn, pos, start, end); -// } -// -// @Override -// public int getGuiNumber(IBlockState state) { -// switch(state.func_177229_b(TABLES)) { -// case StencilTable: -// return 10; -// case PatternChest: -// return 15; -// case PartChest: -// return 16; -// case PartBuilder: -// return 20; -// case ToolStation: -// return 25; -// case CraftingStation: -// return 50; -// default: -// return 0; -// } -// } -// -// public enum TableTypes implements IStringSerializable { -// CraftingStation, -// StencilTable, -// PartBuilder, -// ToolStation, -// PatternChest(true), -// PartChest(true); -// -// TableTypes() { -// meta = this.ordinal(); -// this.isChest = false; -// } -// -// TableTypes(boolean chest) { -// meta = this.ordinal(); -// this.isChest = chest; -// } -// -// public final int meta; -// public final boolean isChest; -// -// public static TableTypes fromMeta(int meta) { -// if(meta < 0 || meta >= values().length) { -// meta = 0; -// } -// -// return values()[meta]; -// } -// -// @Override -// public String func_176610_l() { -// return this.toString().toLowerCase(Locale.US); -// } -// } -//} diff --git a/src/main/java/lance5057/tDefense/core/gui/ArmorStationContainer.java b/src/main/java/lance5057/tDefense/core/gui/ArmorStationContainer.java new file mode 100644 index 0000000..c0b7016 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/gui/ArmorStationContainer.java @@ -0,0 +1,6 @@ +package lance5057.tDefense.core.gui; + +public class ArmorStationContainer +{ + +} diff --git a/src/main/java/lance5057/tDefense/core/gui/ArmorStationGui.java b/src/main/java/lance5057/tDefense/core/gui/ArmorStationGui.java new file mode 100644 index 0000000..8bcea9c --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/gui/ArmorStationGui.java @@ -0,0 +1,577 @@ +package lance5057.tDefense.core.gui; + +import java.io.IOException; +import java.util.List; +import java.util.Set; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.util.Point; + +import com.google.common.collect.Lists; + +import lance5057.tDefense.core.tools.bases.ArmorCore; +import lance5057.tDefense.util.ArmorBuildGuiInfo; +import lance5057.tDefense.util.TDClientRegistry; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.TextFormatting; +import net.minecraft.util.text.translation.I18n; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import slimeknights.mantle.client.gui.GuiElement; +import slimeknights.mantle.client.gui.GuiElementScalable; +import slimeknights.mantle.client.gui.GuiModule; +import slimeknights.tconstruct.common.TinkerNetwork; +import slimeknights.tconstruct.library.TinkerRegistry; +import slimeknights.tconstruct.library.TinkerRegistryClient; +import slimeknights.tconstruct.library.Util; +import slimeknights.tconstruct.library.client.Icons; +import slimeknights.tconstruct.library.client.ToolBuildGuiInfo; +import slimeknights.tconstruct.library.modifiers.IModifier; +import slimeknights.tconstruct.library.modifiers.ModifierNBT; +import slimeknights.tconstruct.library.tinkering.IModifyable; +import slimeknights.tconstruct.library.tinkering.IToolStationDisplay; +import slimeknights.tconstruct.library.tinkering.PartMaterialType; +import slimeknights.tconstruct.library.tinkering.TinkersItem; +import slimeknights.tconstruct.library.tools.IToolPart; +import slimeknights.tconstruct.library.tools.ToolCore; +import slimeknights.tconstruct.library.utils.TagUtil; +import slimeknights.tconstruct.tools.common.client.GuiButtonRepair; +import slimeknights.tconstruct.tools.common.client.GuiTinkerStation; +import slimeknights.tconstruct.tools.common.client.module.GuiButtonsToolStation; +import slimeknights.tconstruct.tools.common.client.module.GuiInfoPanel; +import slimeknights.tconstruct.tools.common.inventory.ContainerTinkerStation; +import slimeknights.tconstruct.tools.common.inventory.ContainerToolStation; +import slimeknights.tconstruct.tools.common.inventory.SlotToolStationIn; +import slimeknights.tconstruct.tools.common.network.ToolStationSelectionPacket; +import slimeknights.tconstruct.tools.common.network.ToolStationTextPacket; +import slimeknights.tconstruct.tools.common.tileentity.TileToolStation; + +@SideOnly(Side.CLIENT) +public class ArmorStationGui extends GuiTinkerStation { + + private static final ResourceLocation BACKGROUND = Util.getResource("textures/gui/toolstation.png"); + + private static final GuiElement TextFieldActive = new GuiElement(0, 210, 102, 12, 256, 256); + private static final GuiElement ItemCover = new GuiElement(176, 18, 80, 64); + private static final GuiElement SlotBackground = new GuiElement(176, 0, 18, 18); + private static final GuiElement SlotBorder = new GuiElement(194, 0, 18, 18); + + private static final GuiElement SlotSpaceTop = new GuiElement(0, 174 + 2, 18, 2); + private static final GuiElement SlotSpaceBottom = new GuiElement(0, 174, 18, 2); + private static final GuiElement PanelSpaceL = new GuiElement(0, 174, 5, 4); + private static final GuiElement PanelSpaceR = new GuiElement(9, 174, 9, 4); + + private static final GuiElement BeamLeft = new GuiElement(0, 180, 2, 7); + private static final GuiElement BeamRight = new GuiElement(131, 180, 2, 7); + private static final GuiElementScalable BeamCenter = new GuiElementScalable(2, 180, 129, 7); + + public static final int Column_Count = 5; + private static final int Table_slot_count = 6; + + protected GuiElement buttonDecorationTop = SlotSpaceTop; + protected GuiElement buttonDecorationBot = SlotSpaceBottom; + protected GuiElement panelDecorationL = PanelSpaceL; + protected GuiElement panelDecorationR = PanelSpaceR; + + protected GuiElement beamL = new GuiElement(0, 0, 0, 0); + protected GuiElement beamR = new GuiElement(0, 0, 0, 0); + protected GuiElementScalable beamC = new GuiElementScalable(0, 0, 0, 0); + + protected ArmorStationGuiButtons buttons; + protected int activeSlots; // how many of the available slots are active + + public GuiTextField textField; + + protected GuiInfoPanel toolInfo; + protected GuiInfoPanel traitInfo; + + public ArmorBuildGuiInfo currentInfo = ArmorStationGuiButtonRepair.info; + + public ArmorStationGui(InventoryPlayer playerInv, World world, BlockPos pos, TileToolStation tile) { + super(world, pos, (ContainerTinkerStation) tile.createContainer(playerInv, world, pos)); + + buttons = new ArmorStationGuiButtons(this, inventorySlots); + this.addModule(buttons); + toolInfo = new GuiInfoPanel(this, inventorySlots); + this.addModule(toolInfo); + traitInfo = new GuiInfoPanel(this, inventorySlots); + this.addModule(traitInfo); + + toolInfo.yOffset = 5; + traitInfo.yOffset = toolInfo.getYSize() + 9; + + this.ySize = 174; + + wood(); + } + + @Override + public void initGui() { + super.initGui(); + Keyboard.enableRepeatEvents(true); + + // workaround to line up the tabs on switching even though the GUI is a tad higher + this.guiTop += 4; + this.cornerY += 4; + + textField = new GuiTextField(0, fontRenderer, cornerX + 70, cornerY + 7, 92, 12); + //textField.setFocused(true); + //textField.setCanLoseFocus(false); + textField.setEnableBackgroundDrawing(false); + textField.setMaxStringLength(40); + + buttons.xOffset = -2; + buttons.yOffset = beamC.h + buttonDecorationTop.h; + toolInfo.xOffset = 2; + toolInfo.yOffset = beamC.h + panelDecorationL.h; + traitInfo.xOffset = toolInfo.xOffset; + traitInfo.yOffset = toolInfo.yOffset + toolInfo.getYSize() + 4; + +// for(GuiModule module : modules) { +// module.guiTop += 4; +// } + + updateGUI(); + } + + @Override + public void onGuiClosed() { + super.onGuiClosed(); + Keyboard.enableRepeatEvents(false); + } + + public Set<ToolCore> getBuildableItems() { + return TinkerRegistry.getToolStationCrafting(); + } + + public void onToolSelection(ArmorBuildGuiInfo data) { + activeSlots = Math.min(data.positions.size(), Table_slot_count); + currentInfo = data; + + ToolCore tool = null; + + if(data.armor.getItem() instanceof ToolCore) { + tool = (ToolCore) data.armor.getItem(); + } + + ((ContainerToolStation) inventorySlots).setToolSelection(tool, activeSlots); + // update the server (and others) + TinkerNetwork.sendToServer(new ToolStationSelectionPacket(tool, activeSlots)); + updateGUI(); + } + + public void onToolSelectionPacket(ToolStationSelectionPacket packet) { + ArmorBuildGuiInfo info = TDClientRegistry.getArmorBuildInfoForArmor(packet.tool); + if(info == null) { + info = ArmorStationGuiButtonRepair.info; + } + activeSlots = packet.activeSlots; + currentInfo = info; + + buttons.setSelectedButtonByTool(currentInfo.armor); + + updateGUI(); + } + + public void updateGUI() { + int i; + for(i = 0; i < activeSlots; i++) { + Point point = currentInfo.positions.get(i); + + Slot slot = inventorySlots.getSlot(i); + slot.xPos = point.getX(); + slot.yPos = point.getY(); + } + + // remaining slots + int stillFilled = 0; + for(; i < Table_slot_count; i++) { + Slot slot = inventorySlots.getSlot(i); + + if(slot.getHasStack()) { + slot.xPos = 87 + 20 * stillFilled; + slot.yPos = 62; + stillFilled++; + } + else { + // todo: slot.disable + slot.xPos = 0; + slot.yPos = 0; + } + } + + updateDisplay(); + } + + @Override + public void updateDisplay() { + // tool info of existing or tool to build + ContainerToolStation container = (ContainerToolStation) inventorySlots; + ItemStack toolStack = container.getResult(); + if(toolStack.isEmpty()) { + toolStack = inventorySlots.getSlot(0).getStack(); + } + + // current tool to build or repair/modify + if(toolStack.getItem() instanceof IModifyable) { + if(toolStack.getItem() instanceof IToolStationDisplay) { + IToolStationDisplay tool = (IToolStationDisplay) toolStack.getItem(); + toolInfo.setCaption(tool.getLocalizedToolName()); + toolInfo.setText(tool.getInformation(toolStack)); + } + else { + toolInfo.setCaption(toolStack.getDisplayName()); + toolInfo.setText(); + } + + traitInfo.setCaption(I18n.translateToLocal("gui.toolstation.traits")); + + List<String> mods = Lists.newLinkedList(); + List<String> tips = Lists.newLinkedList(); + NBTTagList tagList = TagUtil.getModifiersTagList(toolStack); + for(int i = 0; i < tagList.tagCount(); i++) { + NBTTagCompound tag = tagList.getCompoundTagAt(i); + ModifierNBT data = ModifierNBT.readTag(tag); + + // get matching modifier + IModifier modifier = TinkerRegistry.getModifier(data.identifier); + if(modifier == null || modifier.isHidden()) { + continue; + } + + mods.add(data.getColorString() + modifier.getTooltip(tag, true)); + tips.add(data.getColorString() + modifier.getLocalizedDesc()); + } + + if(mods.isEmpty()) { + mods.add(I18n.translateToLocal("gui.toolstation.noTraits")); + } + + traitInfo.setText(mods, tips); + } + // repair info + else if(currentInfo.armor.isEmpty()) { + toolInfo.setCaption(I18n.translateToLocal("gui.toolstation.repair")); + toolInfo.setText(); + + traitInfo.setCaption(null); + String c = TextFormatting.DARK_GRAY.toString(); + String[] art = new String[]{ + c + "", + c + "", + c + " .", + c + " /( _________", + c + " | >:=========`", + c + " )( ", + c + " \"\"" + }; + traitInfo.setText(art); + } + // tool build info + else { + ArmorCore tool = (ArmorCore) currentInfo.armor.getItem(); + toolInfo.setCaption(tool.getLocalizedToolName()); + toolInfo.setText(tool.getLocalizedDescription()); + + // Components + List<String> text = Lists.newLinkedList(); + List<PartMaterialType> pms = tool.getRequiredComponents(); + for(int i = 0; i < pms.size(); i++) { + PartMaterialType pmt = pms.get(i); + StringBuilder sb = new StringBuilder(); + + ItemStack slotStack = container.getSlot(i).getStack(); + if(!pmt.isValid(slotStack)) { + sb.append(TextFormatting.RED); + + // is an item in the slot? + if(slotStack.getItem() instanceof IToolPart) { + if(pmt.isValidItem((IToolPart) slotStack.getItem())) { + // the item has an invalid material + warning(Util.translate("gui.error.wrong_material_part")); + } + } + } + + sb.append(" * "); + for(IToolPart part : pmt.getPossibleParts()) { + if(part instanceof Item) { + sb.append(((Item) part).getItemStackDisplayName(new ItemStack((Item) part))); + sb.append("/"); + } + } + sb.deleteCharAt(sb.length() - 1); // removes last '/' + text.add(sb.toString()); + } + traitInfo.setCaption(I18n.translateToLocal("gui.toolstation.components")); + traitInfo.setText(text.toArray(new String[text.size()])); + } + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + super.mouseClicked(mouseX, mouseY, mouseButton); + textField.mouseClicked(mouseX, mouseY, mouseButton); + } + + @Override + protected void keyTyped(char typedChar, int keyCode) throws IOException { + if(!textField.isFocused()) { + super.keyTyped(typedChar, keyCode); + } + else { + if(keyCode == 1) { + this.mc.player.closeScreen(); + } + + textField.textboxKeyTyped(typedChar, keyCode); + TinkerNetwork.sendToServer(new ToolStationTextPacket(textField.getText())); + ((ContainerToolStation) container).setToolName(textField.getText()); + } + } + + @Override + public void updateScreen() { + super.updateScreen(); + textField.updateCursorCounter(); + } + + @Override + public void drawSlot(Slot slotIn) { + // don't draw dormant slots with no item + if(slotIn instanceof SlotToolStationIn && ((SlotToolStationIn) slotIn).isDormant() && !slotIn.getHasStack()) { + return; + } + + super.drawSlot(slotIn); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) { + drawBackground(BACKGROUND); + + if(textField.isFocused()) { + TextFieldActive.draw(cornerX + 68, cornerY + 6); + } + + // draw textfield + textField.drawTextBox(); + + //int xOff = 3; + //int yOff = 6; + + int x = 0; + int y = 0; + + // draw the item background + final float scale = 3.7f; + final float xOff = 10f; + final float yOff = 22f; + GlStateManager.translate(xOff, yOff, 0); + GlStateManager.scale(scale, scale, 1.0f); + { + int logoX = (int) (this.cornerX / scale); + int logoY = (int) (this.cornerY / scale); + + if(currentInfo != null) { + if(!currentInfo.armor.isEmpty()) { + itemRender.renderItemIntoGUI(currentInfo.armor, logoX, logoY); + } + else if(currentInfo == ArmorStationGuiButtonRepair.info) { + this.mc.getTextureManager().bindTexture(Icons.ICON); + Icons.ICON_Anvil.draw(logoX, logoY); + } + } + } + GlStateManager.scale(1f / scale, 1f / scale, 1.0f); + GlStateManager.translate(-xOff, -yOff, 0); + + // rebind gui texture since itemstack drawing sets it to something else + this.mc.getTextureManager().bindTexture(BACKGROUND); + + // reset state after item drawing + GlStateManager.enableBlend(); + GlStateManager.enableAlpha(); + RenderHelper.disableStandardItemLighting(); + GlStateManager.disableDepth(); + + // draw the halftransparent "cover" over the item + GlStateManager.color(1.0f, 1.0f, 1.0f, 0.82f); + ItemCover.draw(this.cornerX + 7, this.cornerY + 18); + + // the slot backgrounds + GlStateManager.color(1.0f, 1.0f, 1.0f, 0.28f); + for(int i = 0; i < activeSlots; i++) { + Slot slot = inventorySlots.getSlot(i); + SlotBackground.draw(x + this.cornerX + slot.xPos - 1, y + this.cornerY + slot.yPos - 1); + } + + // full opaque. Draw the borders of the slots + GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); + for(int i = 0; i < Table_slot_count; i++) { + Slot slot = inventorySlots.getSlot(i); + if(slot instanceof SlotToolStationIn && (!((SlotToolStationIn) slot).isDormant() || slot.getHasStack())) { + SlotBorder.draw( + x + this.cornerX + slot.xPos - 1, y + this.cornerY + slot.yPos - 1); + } + } + + this.mc.getTextureManager().bindTexture(Icons.ICON); + + // slot logos + if(currentInfo == ArmorStationGuiButtonRepair.info) { + drawRepairSlotIcons(); + } + else if(currentInfo.armor.getItem() instanceof TinkersItem) { + for(int i = 0; i < activeSlots; i++) { + Slot slot = inventorySlots.getSlot(i); + if(!(slot instanceof SlotToolStationIn)) { + continue; + } + + ItemStack stack = ((SlotToolStationIn) slot).icon; + if(stack == null) { + continue; + } + + itemRender.renderItemIntoGUI(stack, + x + this.cornerX + slot.xPos, + y + this.cornerY + slot.yPos); + } + } + + this.mc.getTextureManager().bindTexture(BACKGROUND); + x = buttons.getGuiLeft() - beamL.w; + y = cornerY; + // draw the beams at the top + x += beamL.draw(x, y); + x += beamC.drawScaledX(x, y, buttons.getXSize()); + beamR.draw(x, y); + + x = toolInfo.getGuiLeft() - beamL.w; + x += beamL.draw(x, y); + x += beamC.drawScaledX(x, y, toolInfo.getXSize()); + beamR.draw(x, y); + + // draw the decoration for the buttons +// for(Object o : buttons.buttonList) { +// GuiButton button = (GuiButton) o; +// +// buttonDecorationTop.draw(button.x, button.y - buttonDecorationTop.h); +// // don't draw the bottom for the buttons in the last row +// if(button.id < buttons.buttonList.size() - Column_Count) { +// buttonDecorationBot.draw(button.x, button.y + button.height); +// } +// } + + // draw the decorations for the panels + panelDecorationL.draw(toolInfo.getGuiLeft() + 5, toolInfo.getGuiTop() - panelDecorationL.h); + panelDecorationR.draw(toolInfo.guiRight() - 5 - panelDecorationR.w, toolInfo.getGuiTop() - panelDecorationR.h); + panelDecorationL.draw(traitInfo.getGuiLeft() + 5, traitInfo.getGuiTop() - panelDecorationL.h); + panelDecorationR.draw(traitInfo.guiRight() - 5 - panelDecorationR.w, traitInfo.getGuiTop() - panelDecorationR.h); + + GlStateManager.enableDepth(); + + // continue as usual and hope that the drawing state is not completely wrecked + super.drawGuiContainerBackgroundLayer(partialTicks, mouseX, mouseY); + } + + protected void drawRepairSlotIcons() { + for(int i = 0; i < activeSlots; i++) { + drawRepairSlotIcon(i); + } + } + + protected void drawRepairSlotIcon(int i) { + GuiElement icon = null; + Slot slot = inventorySlots.getSlot(i); + // only empty solts get the logo since something else than the displayed thing might be in there. + // which would look weird. + if(slot.getHasStack()) { + return; + } + + if(i == 0) { + icon = Icons.ICON_Pickaxe; + } + else if(i == 1) { + icon = Icons.ICON_Dust; + } + else if(i == 2) { + icon = Icons.ICON_Lapis; + } + else if(i == 3) { + icon = Icons.ICON_Ingot; + } + else if(i == 4) { + icon = Icons.ICON_Gem; + } + else if(i == 5) { + icon = Icons.ICON_Quartz; + } + + if(icon != null) { + drawIconEmpty(slot, icon); + } + } + + protected void wood() { + toolInfo.wood(); + traitInfo.wood(); + + buttonDecorationTop = SlotSpaceTop.shift(SlotSpaceTop.w, 0); + buttonDecorationBot = SlotSpaceBottom.shift(SlotSpaceBottom.w, 0); + panelDecorationL = PanelSpaceL.shift(18, 0); + panelDecorationR = PanelSpaceR.shift(18, 0); + + buttons.wood(); + + beamL = BeamLeft; + beamR = BeamRight; + beamC = BeamCenter; + } + + protected void metal() { + toolInfo.metal(); + traitInfo.metal(); + + buttonDecorationTop = SlotSpaceTop.shift(SlotSpaceTop.w * 2, 0); + buttonDecorationBot = SlotSpaceBottom.shift(SlotSpaceBottom.w * 2, 0); + panelDecorationL = PanelSpaceL.shift(18 * 2, 0); + panelDecorationR = PanelSpaceR.shift(18 * 2, 0); + + buttons.metal(); + + beamL = BeamLeft.shift(0, BeamLeft.h); + beamR = BeamRight.shift(0, BeamRight.h); + beamC = BeamCenter.shift(0, BeamCenter.h); + } + + @Override + public void error(String message) { + toolInfo.setCaption(I18n.translateToLocal("gui.error")); + toolInfo.setText(message); + traitInfo.setCaption(null); + traitInfo.setText(); + } + + @Override + public void warning(String message) { + toolInfo.setCaption(I18n.translateToLocal("gui.warning")); + toolInfo.setText(message); + traitInfo.setCaption(null); + traitInfo.setText(); + } +}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/core/gui/ArmorStationGuiButtonRepair.java b/src/main/java/lance5057/tDefense/core/gui/ArmorStationGuiButtonRepair.java new file mode 100644 index 0000000..dba33e8 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/gui/ArmorStationGuiButtonRepair.java @@ -0,0 +1,38 @@ +package lance5057.tDefense.core.gui; + +import lance5057.tDefense.util.ArmorBuildGuiInfo; +import net.minecraft.client.Minecraft; +import net.minecraft.util.text.translation.I18n; +import slimeknights.tconstruct.library.client.Icons; +import slimeknights.tconstruct.library.client.ToolBuildGuiInfo; +import slimeknights.tconstruct.tools.common.client.GuiButtonItem; + +public class ArmorStationGuiButtonRepair extends GuiButtonItem<ArmorBuildGuiInfo> { + + public static final ArmorBuildGuiInfo info; + + public ArmorStationGuiButtonRepair(int buttonId, int x, int y) { + super(buttonId, x, y, I18n.translateToLocal("gui.repair"), info); + } + + @Override + protected void drawIcon(Minecraft mc) { + mc.getTextureManager().bindTexture(Icons.ICON); + Icons.ICON_Anvil.draw(x, y); + } + + static { + int x = 7 + 80 / 2 - 8 - 6; + int y = 18 + 64 / 2 - 8; + + info = new ArmorBuildGuiInfo(); + + info.addSlotPosition(x, y); + + info.addSlotPosition(x - 18, y + 20); // -20,+20 + info.addSlotPosition(x - 22, y - 5); // -22, -7 + info.addSlotPosition(x, y - 23); // +-0, -21 + info.addSlotPosition(x + 22, y - 5); // +22, -7 + info.addSlotPosition(x + 18, y + 20); // +20,+20 + } +}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/core/gui/ArmorStationGuiButtons.java b/src/main/java/lance5057/tDefense/core/gui/ArmorStationGuiButtons.java new file mode 100644 index 0000000..d89b002 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/gui/ArmorStationGuiButtons.java @@ -0,0 +1,115 @@ +package lance5057.tDefense.core.gui; + +import java.io.IOException; + +import lance5057.tDefense.util.ArmorBuildGuiInfo; +import lance5057.tDefense.util.TDClientRegistry; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import slimeknights.tconstruct.library.client.Icons; +import slimeknights.tconstruct.library.client.ToolBuildGuiInfo; +import slimeknights.tconstruct.tools.common.client.GuiButtonItem; +import slimeknights.tconstruct.tools.common.client.GuiToolStation; +import slimeknights.tconstruct.tools.common.client.module.GuiSideButtons; + +public class ArmorStationGuiButtons extends GuiSideButtons { + + protected final ArmorStationGui parent; + + public ArmorStationGuiButtons(ArmorStationGui parent, Container container) { + super(parent, container, GuiToolStation.Column_Count); + + this.parent = parent; + } + + protected int selected = 0; + + private int style = 0; + + + @Override + public void updatePosition(int parentX, int parentY, int parentSizeX, int parentSizeY) { + super.updatePosition(parentX, parentY, parentSizeX, parentSizeY); + + int index = 0; + buttonCount = 0; + + { + GuiButtonItem<ArmorBuildGuiInfo> button = new ArmorStationGuiButtonRepair(index++, -1, -1); + shiftButton(button, 0, -18 * style); + addSideButton(button); + } + + for(Item item : parent.getBuildableItems()) { + ArmorBuildGuiInfo info = TDClientRegistry.getArmorBuildInfoForArmor(item); + if(info != null) { + GuiButtonItem<ArmorBuildGuiInfo> button = new GuiButtonItem<ArmorBuildGuiInfo>(index++, -1, -1, info.armor, info); + shiftButton(button, 0, -18 * style); + addSideButton(button); + + if(index - 1 == selected) { + button.pressed = true; + } + } + } + + super.updatePosition(parentX, parentY, parentSizeX, parentSizeY); + + // activate currently selected/default + parent.updateGUI(); + } + + public void setSelectedButtonByTool(ItemStack stack) { + for(Object o : buttonList) { + if(o instanceof GuiButtonItem) { + @SuppressWarnings("unchecked") + GuiButtonItem<ToolBuildGuiInfo> btn = (GuiButtonItem<ToolBuildGuiInfo>) o; + btn.pressed = ItemStack.areItemStacksEqual(btn.data.tool, stack); + } + } + } + + + @Override + @SuppressWarnings("unchecked") + protected void actionPerformed(GuiButton button) throws IOException { + for(Object o : buttonList) { + if(o instanceof GuiButtonItem) { + ((GuiButtonItem<ArmorBuildGuiInfo>) o).pressed = false; + } + } + if(button instanceof GuiButtonItem) { + ((GuiButtonItem<ArmorBuildGuiInfo>) button).pressed = true; + selected = button.id; + + parent.onToolSelection(((GuiButtonItem<ArmorBuildGuiInfo>) button).data); + } + } + + @SuppressWarnings("unchecked") + public void wood() { + for(Object o : buttonList) { + shiftButton((GuiButtonItem<ArmorBuildGuiInfo>) o, 0, -36); + } + + style = 2; + } + + @SuppressWarnings("unchecked") + public void metal() { + for(Object o : buttonList) { + shiftButton((GuiButtonItem<ArmorBuildGuiInfo>) o, 0, -18); + } + + style = 1; + } + + protected void shiftButton(GuiButtonItem<ArmorBuildGuiInfo> button, int xd, int yd) { + button.setGraphics(Icons.ICON_Button.shift(xd, yd), + Icons.ICON_ButtonHover.shift(xd, yd), + Icons.ICON_ButtonPressed.shift(xd, yd), + Icons.ICON); + } +}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/core/items/TDOreDictItem.java b/src/main/java/lance5057/tDefense/core/items/TDOreDictItem.java index 13627f3..7391c75 100644 --- a/src/main/java/lance5057/tDefense/core/items/TDOreDictItem.java +++ b/src/main/java/lance5057/tDefense/core/items/TDOreDictItem.java @@ -71,7 +71,7 @@ public class TDOreDictItem extends Item { @SideOnly(Side.CLIENT) public static class ColorHandler implements IItemColor { @Override - public int getColorFromItemstack(ItemStack stack, int tintIndex) { + public int colorMultiplier(ItemStack stack, int tintIndex) { if (tintIndex == 0) { if (stack.getItem() instanceof TDOreDictItem) { return ((TDOreDictItem) stack.getItem()).getColor(stack); diff --git a/src/main/java/lance5057/tDefense/core/tileentities/ArmorStationTile.java b/src/main/java/lance5057/tDefense/core/tileentities/ArmorStationTile.java new file mode 100644 index 0000000..e2d3654 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tileentities/ArmorStationTile.java @@ -0,0 +1,29 @@ +package lance5057.tDefense.core.tileentities; + +import lance5057.tDefense.core.gui.ArmorStationGui; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import slimeknights.tconstruct.tools.common.tileentity.TileToolStation; + +public class ArmorStationTile extends TileToolStation { + + public ArmorStationTile() { + inventoryTitle = "armorstation.name"; + } + + @Override + @SideOnly(Side.CLIENT) + public GuiContainer createGui(InventoryPlayer inventoryPlayer, World world, BlockPos pos) { + return new ArmorStationGui(inventoryPlayer, world, pos, this); + } + + @Override + public Container createContainer(InventoryPlayer inventoryPlayer, World world, BlockPos pos) { + return new ArmorStationContainer(inventoryPlayer, this, false); + } +}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/core/tools/TDToolEvents.java b/src/main/java/lance5057/tDefense/core/tools/TDToolEvents.java index cbecb12..1214fae 100644 --- a/src/main/java/lance5057/tDefense/core/tools/TDToolEvents.java +++ b/src/main/java/lance5057/tDefense/core/tools/TDToolEvents.java @@ -19,11 +19,6 @@ import slimeknights.tconstruct.library.utils.ToolHelper; public class TDToolEvents { - ItemStack prevHead = new ItemStack(Items.AIR); - ItemStack prevChest = new ItemStack(Items.AIR); - ItemStack prevLegs = new ItemStack(Items.AIR); - ItemStack prevFeet = new ItemStack(Items.AIR); - public TDToolEvents() { } @@ -57,11 +52,6 @@ public class TDToolEvents { @SubscribeEvent public void ArmorTick(TickEvent.PlayerTickEvent event) { - prevFeet = armorChanged(event, prevFeet, event.player.inventory.armorInventory.get(0)); - prevLegs = armorChanged(event, prevLegs, event.player.inventory.armorInventory.get(1)); - prevChest = armorChanged(event, prevChest, event.player.inventory.armorInventory.get(2)); - prevHead = armorChanged(event, prevHead, event.player.inventory.armorInventory.get(3)); - onArmorTick(event); } diff --git a/src/main/java/lance5057/tDefense/core/tools/basic/Shears.java b/src/main/java/lance5057/tDefense/core/tools/basic/Shears.java index 16ef196..f2442be 100644 --- a/src/main/java/lance5057/tDefense/core/tools/basic/Shears.java +++ b/src/main/java/lance5057/tDefense/core/tools/basic/Shears.java @@ -70,7 +70,7 @@ public class Shears extends ToolCore { public float getStrVsBlock(ItemStack stack, IBlockState state) { Block block = state.getBlock(); - return block != Blocks.WEB && state.getMaterial() != net.minecraft.block.material.Material.LEAVES ? (block == Blocks.WOOL ? 5.0F : super.getStrVsBlock(stack, state)) : 15.0F; + return block != Blocks.WEB && state.getMaterial() != net.minecraft.block.material.Material.LEAVES ? (block == Blocks.WOOL ? 5.0F : 15f) : 15.0F; } diff --git a/src/main/java/lance5057/tDefense/core/tools/basic/Zweihander.java b/src/main/java/lance5057/tDefense/core/tools/basic/Zweihander.java index 19934db..b9fdb82 100644 --- a/src/main/java/lance5057/tDefense/core/tools/basic/Zweihander.java +++ b/src/main/java/lance5057/tDefense/core/tools/basic/Zweihander.java @@ -61,7 +61,7 @@ public class Zweihander extends SwordCore { EntityLivingBase.class, entity.getEntityBoundingBox().expand(2.0D, 0.25D, 2.0D))) { if (entitylivingbase != player && entitylivingbase != entity && !player.isOnSameTeam(entitylivingbase) - && player.getDistanceSqToEntity(entitylivingbase) < 9.0D) { + && player.getDistanceSq(entitylivingbase) < 9.0D) { entitylivingbase.knockBack(player, 0.4F, (double) MathHelper.sin(player.rotationYaw * 0.017453292F), (double) (-MathHelper.cos(player.rotationYaw * 0.017453292F))); |
