summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.classpath143
-rw-r--r--.project4
-rw-r--r--Mantle-1.12-1.3.1.DEV.75b9d4b-deobf.jarbin0 -> 444108 bytes
-rw-r--r--Mantle-1.12-1.3.1.DEV.75b9d4b-sources.jarbin0 -> 151068 bytes
-rw-r--r--TConstruct-1.12-2.7.2.DEV.2744c27-deobf.jarbin0 -> 3622003 bytes
-rw-r--r--TConstruct-1.12-2.7.2.DEV.2744c27-sources.jarbin0 -> 771031 bytes
-rw-r--r--Tinkers-Defense_Client.launch2
-rw-r--r--Tinkers-Defense_Server.launch2
-rw-r--r--build.gradle10
-rw-r--r--src/main/java/lance5057/tDefense/core/blocks/ArmorStationBlock.java62
-rw-r--r--src/main/java/lance5057/tDefense/core/blocks/Stations.java243
-rw-r--r--src/main/java/lance5057/tDefense/core/gui/ArmorStationContainer.java6
-rw-r--r--src/main/java/lance5057/tDefense/core/gui/ArmorStationGui.java577
-rw-r--r--src/main/java/lance5057/tDefense/core/gui/ArmorStationGuiButtonRepair.java38
-rw-r--r--src/main/java/lance5057/tDefense/core/gui/ArmorStationGuiButtons.java115
-rw-r--r--src/main/java/lance5057/tDefense/core/items/TDOreDictItem.java2
-rw-r--r--src/main/java/lance5057/tDefense/core/tileentities/ArmorStationTile.java29
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/TDToolEvents.java10
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/basic/Shears.java2
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/basic/Zweihander.java2
20 files changed, 912 insertions, 335 deletions
diff --git a/.classpath b/.classpath
index 7379490..f92695a 100644
--- a/.classpath
+++ b/.classpath
@@ -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>
diff --git a/.project b/.project
index 4697c2a..f040d9c 100644
--- a/.project
+++ b/.project
@@ -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
new file mode 100644
index 0000000..7fa9eee
--- /dev/null
+++ b/Mantle-1.12-1.3.1.DEV.75b9d4b-deobf.jar
Binary files differ
diff --git a/Mantle-1.12-1.3.1.DEV.75b9d4b-sources.jar b/Mantle-1.12-1.3.1.DEV.75b9d4b-sources.jar
new file mode 100644
index 0000000..fb7cb38
--- /dev/null
+++ b/Mantle-1.12-1.3.1.DEV.75b9d4b-sources.jar
Binary files differ
diff --git a/TConstruct-1.12-2.7.2.DEV.2744c27-deobf.jar b/TConstruct-1.12-2.7.2.DEV.2744c27-deobf.jar
new file mode 100644
index 0000000..7b8e391
--- /dev/null
+++ b/TConstruct-1.12-2.7.2.DEV.2744c27-deobf.jar
Binary files differ
diff --git a/TConstruct-1.12-2.7.2.DEV.2744c27-sources.jar b/TConstruct-1.12-2.7.2.DEV.2744c27-sources.jar
new file mode 100644
index 0000000..3693d54
--- /dev/null
+++ b/TConstruct-1.12-2.7.2.DEV.2744c27-sources.jar
Binary files differ
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)));