fixed recipes, working tools
613
.classpath
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
|
||||||
<classpathentry kind="src" output="bin/main" path="src/main/java">
|
<classpathentry kind="src" output="bin/main" path="src/main/java">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="gradle_scope" value="main"/>
|
<attribute name="gradle_scope" value="main"/>
|
||||||
@ -12,7 +13,615 @@
|
|||||||
<attribute name="gradle_used_by_scope" value="main,test"/>
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-21/"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
|
||||||
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
|
<attributes>
|
||||||
|
<attribute name="module" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/24.1.0/7af6a669488450c4a07c2c3254e2151df42d7d04/annotations-24.1.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/24.1.0/d90a405211798b013b8ee3d54f70edc0913a28b0/annotations-24.1.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value=""/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.6/aa205cf0a06dbd8e04ece91c0b37c3f5d567546a/asm-9.6.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.6/d55087ece3c6a82ef0d6acb9d853886d7af9445d/asm-9.6-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.6/9ce6c7b174bd997fc2552dff47964546bd7a5ec3/asm-analysis-9.6.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.6/2a0c33a19c1b594fee4eb539e3cd51eb3dd80903/asm-analysis-9.6-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.6/f1a9e5508eff490744144565c47326c8648be309/asm-commons-9.6.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.6/446c8ca5fffad2e50b5a7ab4c25fc901c7f38ab9/asm-commons-9.6-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.6/c0cdda9d211e965d2a4448aa3fd86110f2f8c2de/asm-tree-9.6.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.6/ea2ff719db7976655f5c95469a98eac7671a119/asm-tree-9.6-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.6/f77caf84eb93786a749b2baa40865b9613e3eaee/asm-util-9.6.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.6/7113c3476982c7b982f16b45d24dd86e2ffca46a/asm-util-9.6-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.13.3+mixin.0.8.5/9527e6b0d2449408958fd1302594dc65ec5ade9c/sponge-mixin-0.13.3+mixin.0.8.5.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.13.3+mixin.0.8.5/728bb250347f7d817d0fb733180e8c7ea485b0a/sponge-mixin-0.13.3+mixin.0.8.5-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.github.llamalad7/mixinextras-fabric/0.3.5/3b577be20ea942610b3045e4f0cd909fa415a9d3/mixinextras-fabric-0.3.5.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.github.llamalad7/mixinextras-fabric/0.3.5/86a7826b6f561dab8643e92a6b62a513da9fba60/mixinextras-fabric-0.3.5-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/net.fabricmc/yarn/1.21+build.2/2ad14aed781c4a73ed4dbb421966d408a0a06686/yarn-1.21+build.2-constants.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/net.fabricmc/yarn/1.21+build.2/ce51544996d8a3cd4f6a1a4ba3a54dc142c92ea7/yarn-1.21+build.2-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value=""/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.github.oshi/oshi-core/6.4.10/b1d8ab82d11d92fd639b56d639f8f46f739dd5fa/oshi-core-6.4.10.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.github.oshi/oshi-core/6.4.10/4ed9e291040b618d12880f00fe77f13777dfa7cb/oshi-core-6.4.10-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.10.1/b3add478d4382b78ea20b1671390a858002feb6c/gson-2.10.1.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.10.1/982a90132e942f302e6fe79d6e78c4bc2e998569/gson-2.10.1-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.1/1dcf1de382a0bf95a3d8b0849546c88bac1292c9/failureaccess-1.0.1.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.1/1d064e61aad6c51cc77f9b59dc2cccc78e792f5a/failureaccess-1.0.1-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/32.1.2-jre/5e64ec7e056456bef3a4bc4c6fdaef71e8ab6318/guava-32.1.2-jre.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/32.1.2-jre/e1911d4544f426600132fbd450a7ccab8a3ce8dc/guava-32.1.2-jre-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.ibm.icu/icu4j/73.2/61ad4ef7f9131fcf6d25c34b817f90d6da06c9e9/icu4j-73.2.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.ibm.icu/icu4j/73.2/824467d920134624effab17374434d00fe7b3b40/icu4j-73.2-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/6.0.54/de8bc95660e1b2fe8793fd427a7a10dcec5b3ea7/authlib-6.0.54.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/6.0.54/1e11f447b3029c31afa41291f02d0da3701af827/authlib-6.0.54-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/blocklist/1.0.10/5c685c5ffa94c4cd39496c7184c1d122e515ecef/blocklist-1.0.10.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/blocklist/1.0.10/ef44852fa1707a833bfa8e8518659ab18f368d25/blocklist-1.0.10-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/brigadier/1.2.9/73e324f2ee541493a5179abf367237faa782ed21/brigadier-1.2.9.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/brigadier/1.2.9/b81375eb6ee3fccbda1841a5620a61798655beb/brigadier-1.2.9-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/datafixerupper/8.0.16/67d4de6d7f95d89bcf5862995fb854ebaec02a34/datafixerupper-8.0.16.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/datafixerupper/8.0.16/1482506562a012761c60594c23f6bcbeb0d354a3/datafixerupper-8.0.16-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/logging/1.2.7/24cb95ffb0e3433fd6e844c04e68009e504ca1c0/logging-1.2.7.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/logging/1.2.7/3913c421c4f6b914a15fa267e6dbab44c989690f/logging-1.2.7-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/patchy/2.2.10/da05971b07cbb379d002cf7eaec6a2048211fefc/patchy-2.2.10.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/text2speech/1.17.9/3cad216e3a7f0c19b4b394388bc9ffc446f13b14/text2speech-1.17.9.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/com.mojang/text2speech/1.17.9/1898fbfd00a552b7f9a3cc0438623845a91e74ed/text2speech-1.17.9-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.16.0/4e3eb3d79888d76b54e28b350915b5dc3919c9de/commons-codec-1.16.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.16.0/57c67a979689051a455570196d0f48134db9909e/commons-codec-1.16.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.15.1/f11560da189ab563a5c8e351941415430e9304ea/commons-io-2.15.1.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.15.1/f23737700ceaddc75169d994c7d9c9a2e5dddf39/commons-io-2.15.1-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/ecf26c7507d67782a3bbd148d170b31dfad001aa/commons-logging-1.2-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-buffer/4.1.97.Final/f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f/netty-buffer-4.1.97.Final.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-buffer/4.1.97.Final/5d2c3a0c097b4fd07fe87c35ad6ad125a683cf05/netty-buffer-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec/4.1.97.Final/384ba4d75670befbedb45c4d3b497a93639c206d/netty-codec-4.1.97.Final.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec/4.1.97.Final/ec4abd65dbbb57b39e4e7ca40d8883e052038862/netty-codec-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.1.97.Final/7cceacaf11df8dc63f23d0fb58e9d4640fc88404/netty-common-4.1.97.Final.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.1.97.Final/6602f651718b461cd2d17244d95cc87d58c3169a/netty-common-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-handler/4.1.97.Final/abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36/netty-handler-4.1.97.Final.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-handler/4.1.97.Final/badecb27f6b39814c8932d2ba8d5c3ce2a8dffe/netty-handler-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-resolver/4.1.97.Final/cec8348108dc76c47cf87c669d514be52c922144/netty-resolver-4.1.97.Final.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-resolver/4.1.97.Final/79dbdd5bddcb4f901c18337b367db354df56fca1/netty-resolver-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-classes-epoll/4.1.97.Final/795da37ded759e862457a82d9d92c4d39ce8ecee/netty-transport-classes-epoll-4.1.97.Final.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-classes-epoll/4.1.97.Final/c4c9f444bc376a359b3159d45947ffc510d77d38/netty-transport-classes-epoll-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-epoll/4.1.97.Final/5514744c588190ffda076b35a9b8c9f24946a960/netty-transport-native-epoll-4.1.97.Final-linux-aarch_64.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-epoll/4.1.97.Final/88dc2589ab3fdf0199ec0bd1b7c094ae9bab31fb/netty-transport-native-epoll-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-epoll/4.1.97.Final/54188f271e388e7f313aea995e82f58ce2cdb809/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-epoll/4.1.97.Final/88dc2589ab3fdf0199ec0bd1b7c094ae9bab31fb/netty-transport-native-epoll-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-unix-common/4.1.97.Final/d469d84265ab70095b01b40886cabdd433b6e664/netty-transport-native-unix-common-4.1.97.Final.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-unix-common/4.1.97.Final/d9bcfe2c9bc55a77973fc4bb7e4d6c1a298ac9e9/netty-transport-native-unix-common-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport/4.1.97.Final/f37380d23c9bb079bc702910833b2fd532c9abd0/netty-transport-4.1.97.Final.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport/4.1.97.Final/80452a42374b6c4e1a3596ce09f337b4ff4f4efb/netty-transport-4.1.97.Final-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/8.5.12/c24946d46824bd528054bface3231d2ecb7e95e8/fastutil-8.5.12.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/8.5.12/a57be04c180ac69159c5dc2e9902deebc25780bd/fastutil-8.5.12-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna-platform/5.14.0/28934d48aed814f11e4c584da55c49fa7032b31b/jna-platform-5.14.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna-platform/5.14.0/cefe3d258159eb44f4369ff5d8e12602a340bd15/jna-platform-5.14.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.14.0/67bf3eaea4f0718cb376a181a629e5f88fa1c9dd/jna-5.14.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.14.0/13bda98796cf4739f5d40cb825578cfaa8463c6e/jna-5.14.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.4/4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c/jopt-simple-5.0.4.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.4/950831646d014c9162999019a3cb17d5fc01ac0d/jopt-simple-5.0.4-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.26.0/659feffdd12280201c8aacb8f7be94f9a883c824/commons-compress-1.26.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.26.0/35d0a3e49b7c2321c8445a375adc6df9d148c132/commons-compress-1.26.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.14.0/1ed471194b02f2c6cb734a0cd6f6f107c673afae/commons-lang3-3.14.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.14.0/9ef3e18356f4ac30b15bfa48c02a7f54b51af382/commons-lang3-3.14.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5.13/e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada/httpclient-4.5.13.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5.13/9654e91a61d7662c36be6710ef8e720c0e3f9807/httpclient-4.5.13-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.16/51cf043c87253c9f58b539c9f7e44c8894223850/httpcore-4.4.16.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.16/229e4c0eae80465381ae02adf61bca5558360777/httpcore-4.4.16-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.22.1/bea6fede6328fabafd7e68363161a7ea6605abd1/log4j-api-2.22.1.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.22.1/a56be5b0028ef8f3e2d6f3b057e8d19794fc5116/log4j-api-2.22.1-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.22.1/7183a25510a02ad00cc6a95d3b3d2a7d3c5a8dc4/log4j-core-2.22.1.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.22.1/594b6169e6bba2c964282fd657672f8893304f97/log4j-core-2.22.1-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j2-impl/2.22.1/d7e6693c2606cb7e7335047d7bb96dec52db5665/log4j-slf4j2-impl-2.22.1.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j2-impl/2.22.1/81724a054d0618d7a15cf217ede478c0d08e421/log4j-slf4j2-impl-2.22.1-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.jcraft/jorbis/0.0.17/8872d22b293e8f5d7d56ff92be966e6dc28ebdc6/jorbis-0.0.17.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.jcraft/jorbis/0.0.17/5446be5d62e4c6b347c8e6cd28dc00a936417ba2/jorbis-0.0.17-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.joml/joml/1.10.5/22566d58af70ad3d72308bab63b8339906deb649/joml-1.10.5.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.joml/joml/1.10.5/c1f2266a7d0386d7643879ed1b93f51d29126180/joml-1.10.5-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-freetype/3.3.3/a0db6c84a8becc8ca05f9dbfa985edc348a824c7/lwjgl-freetype-3.3.3.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-freetype/3.3.3/d9fba96328a80677edbab28a843f33b847cf1e57/lwjgl-freetype-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.3/efa1eb78c5ccd840e9f329717109b5e892d72f8e/lwjgl-glfw-3.3.3.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.3/fa2c760452674d3eaf336123539b0dd9a83041a4/lwjgl-glfw-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.3/b543467b7ff3c6920539a88ee602d34098628be5/lwjgl-jemalloc-3.3.3.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.3/6a4ea7a9095e1684a9c6adb2c49d28daae2b6e45/lwjgl-jemalloc-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.3/daada81ceb5fc0c291fbfdd4433cb8d9423577f2/lwjgl-openal-3.3.3.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.3/60a4ce24d71b3376ce53b50cfe3eaaf3277dd727/lwjgl-openal-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.3/2f6b0147078396a58979125a4c947664e98293a/lwjgl-opengl-3.3.3.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.3/3353d0b2cac91b84088b01711d33cc403893450b/lwjgl-opengl-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.3/25dd6161988d7e65f71d5065c99902402ee32746/lwjgl-stb-3.3.3.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.3/37c2b604ec4a5ee356dd734dc8167a193e8874ed/lwjgl-stb-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.3/82d755ca94b102e9ca77283b9e2dc46d1b15fbe5/lwjgl-tinyfd-3.3.3.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.3/dcda55223f2f940654d222bf4371baa969c60bb9/lwjgl-tinyfd-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.3/29589b5f87ed335a6c7e7ee6a5775f81f97ecb84/lwjgl-3.3.3.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.3/e5949c7bbf4f839afe6d1a631e9b75f63c559e0/lwjgl-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lz4/lz4-java/1.8.0/4b986a99445e49ea5fbf5d149c4b63f6ed6c6780/lz4-java-1.8.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lz4/lz4-java/1.8.0/7609c362f37f0c0bd3743bc1976df2daa28ad19e/lz4-java-1.8.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.9/7cf2726fdcfbc8610f9a71fb3ed639871f315340/slf4j-api-2.0.9.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.9/97e46b94d70f47892145e09d685461245584d596/slf4j-api-2.0.9-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/minecraftMaven/net/minecraft/minecraft-merged-4eb0fe4bb6/1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2/minecraft-merged-4eb0fe4bb6-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/minecraftMaven/net/minecraft/minecraft-merged-4eb0fe4bb6/1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2/minecraft-merged-4eb0fe4bb6-1.21-net.fabricmc.yarn.1_21.1.21+build.2-v2-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/net.fabricmc/fabric-loader/0.15.11/9c2be53d84ec5c4fb58bb5b8d9c8a629047c9ee9/fabric-loader-0.15.11.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/net.fabricmc/fabric-loader/0.15.11/ee8baabf67a4b0489227a2c2bf8618295ec1d401/fabric-loader-0.15.11-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-api/0.100.0+1.21/fabric-api-0.100.0+1.21.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-api/0.100.0+1.21/fabric-api-0.100.0+1.21-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-transfer-api-v1/5.1.12+b55973447c/fabric-transfer-api-v1-5.1.12+b55973447c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-transfer-api-v1/5.1.12+b55973447c/fabric-transfer-api-v1-5.1.12+b55973447c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-api-lookup-api-v1/1.6.65+b55973447c/fabric-api-lookup-api-v1-1.6.65+b55973447c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-api-lookup-api-v1/1.6.65+b55973447c/fabric-api-lookup-api-v1-1.6.65+b55973447c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-blockrenderlayer-v1/1.1.52+0af3f5a77c/fabric-blockrenderlayer-v1-1.1.52+0af3f5a77c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-blockrenderlayer-v1/1.1.52+0af3f5a77c/fabric-blockrenderlayer-v1-1.1.52+0af3f5a77c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-client-tags-api-v1/1.1.15+6573ed8c7c/fabric-client-tags-api-v1-1.1.15+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-client-tags-api-v1/1.1.15+6573ed8c7c/fabric-client-tags-api-v1-1.1.15+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-command-api-v1/1.2.48+f71b366f7c/fabric-command-api-v1-1.2.48+f71b366f7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-command-api-v1/1.2.48+f71b366f7c/fabric-command-api-v1-1.2.48+f71b366f7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-commands-v0/0.2.65+df3654b37c/fabric-commands-v0-0.2.65+df3654b37c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-commands-v0/0.2.65+df3654b37c/fabric-commands-v0-0.2.65+df3654b37c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-command-api-v2/2.2.27+6a6dfa197c/fabric-command-api-v2-2.2.27+6a6dfa197c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-command-api-v2/2.2.27+6a6dfa197c/fabric-command-api-v2-2.2.27+6a6dfa197c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-content-registries-v0/8.0.11+b55973447c/fabric-content-registries-v0-8.0.11+b55973447c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-content-registries-v0/8.0.11+b55973447c/fabric-content-registries-v0-8.0.11+b55973447c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-data-generation-api-v1/20.2.5+16c4ae257c/fabric-data-generation-api-v1-20.2.5+16c4ae257c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-data-generation-api-v1/20.2.5+16c4ae257c/fabric-data-generation-api-v1-20.2.5+16c4ae257c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-convention-tags-v1/2.0.11+7f945d5b7c/fabric-convention-tags-v1-2.0.11+7f945d5b7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-convention-tags-v1/2.0.11+7f945d5b7c/fabric-convention-tags-v1-2.0.11+7f945d5b7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-convention-tags-v2/2.2.0+bf2c39087c/fabric-convention-tags-v2-2.2.0+bf2c39087c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-convention-tags-v2/2.2.0+bf2c39087c/fabric-convention-tags-v2-2.2.0+bf2c39087c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-data-attachment-api-v1/1.1.22+6a6dfa197c/fabric-data-attachment-api-v1-1.1.22+6a6dfa197c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-data-attachment-api-v1/1.1.22+6a6dfa197c/fabric-data-attachment-api-v1-1.1.22+6a6dfa197c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-entity-events-v1/1.6.12+6fc22b997c/fabric-entity-events-v1-1.6.12+6fc22b997c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-entity-events-v1/1.6.12+6fc22b997c/fabric-entity-events-v1-1.6.12+6fc22b997c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-events-interaction-v0/0.7.10+e633f8837c/fabric-events-interaction-v0-0.7.10+e633f8837c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-events-interaction-v0/0.7.10+e633f8837c/fabric-events-interaction-v0-0.7.10+e633f8837c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-gametest-api-v1/2.0.0+6fc22b997c/fabric-gametest-api-v1-2.0.0+6fc22b997c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-gametest-api-v1/2.0.0+6fc22b997c/fabric-gametest-api-v1-2.0.0+6fc22b997c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-item-api-v1/11.0.0+afdfc9217c/fabric-item-api-v1-11.0.0+afdfc9217c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-item-api-v1/11.0.0+afdfc9217c/fabric-item-api-v1-11.0.0+afdfc9217c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-item-group-api-v1/4.1.0+00ab0a637c/fabric-item-group-api-v1-4.1.0+00ab0a637c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-item-group-api-v1/4.1.0+00ab0a637c/fabric-item-group-api-v1-4.1.0+00ab0a637c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-lifecycle-events-v1/2.3.9+98a7dbbb7c/fabric-lifecycle-events-v1-2.3.9+98a7dbbb7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-lifecycle-events-v1/2.3.9+98a7dbbb7c/fabric-lifecycle-events-v1-2.3.9+98a7dbbb7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-loot-api-v2/3.0.9+6573ed8c7c/fabric-loot-api-v2-3.0.9+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-loot-api-v2/3.0.9+6573ed8c7c/fabric-loot-api-v2-3.0.9+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-message-api-v1/6.0.13+6573ed8c7c/fabric-message-api-v1-6.0.13+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-message-api-v1/6.0.13+6573ed8c7c/fabric-message-api-v1-6.0.13+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-model-loading-api-v1/2.0.0+fe474d6b7c/fabric-model-loading-api-v1-2.0.0+fe474d6b7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-model-loading-api-v1/2.0.0+fe474d6b7c/fabric-model-loading-api-v1-2.0.0+fe474d6b7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-recipe-api-v1/5.0.8+6573ed8c7c/fabric-recipe-api-v1-5.0.8+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-recipe-api-v1/5.0.8+6573ed8c7c/fabric-recipe-api-v1-5.0.8+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-screen-handler-api-v1/1.3.78+b55973447c/fabric-screen-handler-api-v1-1.3.78+b55973447c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-screen-handler-api-v1/1.3.78+b55973447c/fabric-screen-handler-api-v1-1.3.78+b55973447c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-registry-sync-v0/5.0.21+b9828ba37c/fabric-registry-sync-v0-5.0.21+b9828ba37c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-registry-sync-v0/5.0.21+b9828ba37c/fabric-registry-sync-v0-5.0.21+b9828ba37c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-networking-api-v1/4.1.0+686dcdce7c/fabric-networking-api-v1-4.1.0+686dcdce7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-networking-api-v1/4.1.0+686dcdce7c/fabric-networking-api-v1-4.1.0+686dcdce7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-object-builder-api-v1/15.1.10+d13210767c/fabric-object-builder-api-v1-15.1.10+d13210767c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-object-builder-api-v1/15.1.10+d13210767c/fabric-object-builder-api-v1-15.1.10+d13210767c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-particles-v1/4.0.2+6573ed8c7c/fabric-particles-v1-4.0.2+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-particles-v1/4.0.2+6573ed8c7c/fabric-particles-v1-4.0.2+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-renderer-indigo/1.6.3+cc9f121a7c/fabric-renderer-indigo-1.6.3+cc9f121a7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-renderer-indigo/1.6.3+cc9f121a7c/fabric-renderer-indigo-1.6.3+cc9f121a7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-renderer-api-v1/3.2.16+fe474d6b7c/fabric-renderer-api-v1-3.2.16+fe474d6b7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-renderer-api-v1/3.2.16+fe474d6b7c/fabric-renderer-api-v1-3.2.16+fe474d6b7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-rendering-fluids-v1/3.1.6+b55973447c/fabric-rendering-fluids-v1-3.1.6+b55973447c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-rendering-fluids-v1/3.1.6+b55973447c/fabric-rendering-fluids-v1-3.1.6+b55973447c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-renderer-registries-v1/3.2.66+df3654b37c/fabric-renderer-registries-v1-3.2.66+df3654b37c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-renderer-registries-v1/3.2.66+df3654b37c/fabric-renderer-registries-v1-3.2.66+df3654b37c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-rendering-v0/1.1.69+df3654b37c/fabric-rendering-v0-1.1.69+df3654b37c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-rendering-v0/1.1.69+df3654b37c/fabric-rendering-v0-1.1.69+df3654b37c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-rendering-v1/5.0.3+d13210767c/fabric-rendering-v1-5.0.3+d13210767c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-rendering-v1/5.0.3+d13210767c/fabric-rendering-v1-5.0.3+d13210767c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-screen-api-v1/2.0.24+b55973447c/fabric-screen-api-v1-2.0.24+b55973447c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-screen-api-v1/2.0.24+b55973447c/fabric-screen-api-v1-2.0.24+b55973447c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-api-base/0.4.42+6573ed8c7c/fabric-api-base-0.4.42+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-api-base/0.4.42+6573ed8c7c/fabric-api-base-0.4.42+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-biome-api-v1/13.0.28+6fc22b997c/fabric-biome-api-v1-13.0.28+6fc22b997c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-biome-api-v1/13.0.28+6fc22b997c/fabric-biome-api-v1-13.0.28+6fc22b997c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-block-api-v1/1.0.22+0af3f5a77c/fabric-block-api-v1-1.0.22+0af3f5a77c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-block-api-v1/1.0.22+0af3f5a77c/fabric-block-api-v1-1.0.22+0af3f5a77c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-rendering-data-attachment-v1/0.3.48+73761d2e7c/fabric-rendering-data-attachment-v1-0.3.48+73761d2e7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-rendering-data-attachment-v1/0.3.48+73761d2e7c/fabric-rendering-data-attachment-v1-0.3.48+73761d2e7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-block-view-api-v2/1.0.10+6573ed8c7c/fabric-block-view-api-v2-1.0.10+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-block-view-api-v2/1.0.10+6573ed8c7c/fabric-block-view-api-v2-1.0.10+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-crash-report-info-v1/0.2.29+0af3f5a77c/fabric-crash-report-info-v1-0.2.29+0af3f5a77c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-crash-report-info-v1/0.2.29+0af3f5a77c/fabric-crash-report-info-v1-0.2.29+0af3f5a77c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-dimensions-v1/4.0.0+6fc22b997c/fabric-dimensions-v1-4.0.0+6fc22b997c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-dimensions-v1/4.0.0+6fc22b997c/fabric-dimensions-v1-4.0.0+6fc22b997c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-game-rule-api-v1/1.0.52+6573ed8c7c/fabric-game-rule-api-v1-1.0.52+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-game-rule-api-v1/1.0.52+6573ed8c7c/fabric-game-rule-api-v1-1.0.52+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-keybindings-v0/0.2.45+df3654b37c/fabric-keybindings-v0-0.2.45+df3654b37c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-keybindings-v0/0.2.45+df3654b37c/fabric-keybindings-v0-0.2.45+df3654b37c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-key-binding-api-v1/1.0.47+0af3f5a77c/fabric-key-binding-api-v1-1.0.47+0af3f5a77c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-key-binding-api-v1/1.0.47+0af3f5a77c/fabric-key-binding-api-v1-1.0.47+0af3f5a77c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-resource-conditions-api-v1/4.2.1+6573ed8c7c/fabric-resource-conditions-api-v1-4.2.1+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-resource-conditions-api-v1/4.2.1+6573ed8c7c/fabric-resource-conditions-api-v1-4.2.1+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-resource-loader-v0/1.1.3+b55973447c/fabric-resource-loader-v0-1.1.3+b55973447c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-resource-loader-v0/1.1.3+b55973447c/fabric-resource-loader-v0-1.1.3+b55973447c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-sound-api-v1/1.0.23+6573ed8c7c/fabric-sound-api-v1-1.0.23+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-sound-api-v1/1.0.23+6573ed8c7c/fabric-sound-api-v1-1.0.23+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-transitive-access-wideners-v1/6.0.12+6573ed8c7c/fabric-transitive-access-wideners-v1-6.0.12+6573ed8c7c.jar" sourcepath="/home/jotty/Entwicklung/git/quickiemod/.gradle/loom-cache/remapped_mods/net_fabricmc_yarn_1_21_1_21_build_2_v2/net/fabricmc/fabric-api/fabric-transitive-access-wideners-v1/6.0.12+6573ed8c7c/fabric-transitive-access-wideners-v1-6.0.12+6573ed8c7c-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/net.fabricmc/dev-launch-injector/0.2.1+build.8/da8bef7e6e2f952da707f282bdb46882a0fce5e3/dev-launch-injector-0.2.1+build.8.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/net.minecrell/terminalconsoleappender/1.3.0/b562e9bb61235c9520e26282cdee71f8f802d1fc/terminalconsoleappender-1.3.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/net.minecrell/terminalconsoleappender/1.3.0/2fd4d796402a408af0d26c848e02ec8f91dceae7/terminalconsoleappender-1.3.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-freetype/3.3.3/149070a5480900347071b7074779531f25a6e3dc/lwjgl-freetype-3.3.3-natives-linux.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-freetype/3.3.3/d9fba96328a80677edbab28a843f33b847cf1e57/lwjgl-freetype-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.3/a03684c5e4b1b1dbbe0d29dbbdc27b985b6840f2/lwjgl-glfw-3.3.3-natives-linux.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.3/fa2c760452674d3eaf336123539b0dd9a83041a4/lwjgl-glfw-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.3/4f86728bf449b1dd61251c4e0ac01df1389cb51e/lwjgl-jemalloc-3.3.3-natives-linux.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.3/6a4ea7a9095e1684a9c6adb2c49d28daae2b6e45/lwjgl-jemalloc-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.3/3037360cc4595079bea240af250b6d1a527e0905/lwjgl-openal-3.3.3-natives-linux.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.3/60a4ce24d71b3376ce53b50cfe3eaaf3277dd727/lwjgl-openal-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.3/62c70a4b00ca5391882b0f4b787c1588d24f1c86/lwjgl-opengl-3.3.3-natives-linux.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.3/3353d0b2cac91b84088b01711d33cc403893450b/lwjgl-opengl-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.3/fd1271ccd9d85eff2fa31f3fd543e02ccfaf5041/lwjgl-stb-3.3.3-natives-linux.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.3/37c2b604ec4a5ee356dd734dc8167a193e8874ed/lwjgl-stb-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.3/d8d58daa0c3e5fd906fee96f5fddbcbc07cc308b/lwjgl-tinyfd-3.3.3-natives-linux.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.3/dcda55223f2f940654d222bf4371baa969c60bb9/lwjgl-tinyfd-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.3/1713758e3660ba66e1e954396fd18126038b33c0/lwjgl-3.3.3-natives-linux.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.3/e5949c7bbf4f839afe6d1a631e9b75f63c559e0/lwjgl-3.3.3-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.jline/jline-reader/3.20.0/8f15415b022a25b473e8e16c28ae913186ffb9c4/jline-reader-3.20.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.jline/jline-reader/3.20.0/94a832964241f634f3b4a872e55241678227f28b/jline-reader-3.20.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.20.0/d0ddcc708ddf527a3454c941b7b9225cc83a15ff/jline-terminal-3.20.0.jar" sourcepath="/home/jotty/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.20.0/2ca86e8c3a4ba5d6a3cb629afd9180c58076609/jline-terminal-3.20.0-sources.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="lib" path="/home/jotty/.gradle/caches/fabric-loom/1.21/net.fabricmc.yarn.1_21.1.21+build.2-v2/mappings.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
<classpathentry kind="output" path="bin/default"/>
|
<classpathentry kind="output" path="bin/default"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
27
.project
@ -2,22 +2,21 @@
|
|||||||
<projectDescription>
|
<projectDescription>
|
||||||
<name>quickiemod</name>
|
<name>quickiemod</name>
|
||||||
<comment></comment>
|
<comment></comment>
|
||||||
<projects>
|
<projects/>
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
<natures>
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
||||||
</natures>
|
</natures>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments/>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
||||||
|
<arguments/>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<linkedResources/>
|
||||||
|
<filteredResources/>
|
||||||
</projectDescription>
|
</projectDescription>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
#Sat Jun 01 10:37:20 CEST 2024
|
#Sat Jun 15 13:57:14 CEST 2024
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
|
||||||
|
@ -9,7 +9,7 @@ yarn_mappings=1.21+build.2
|
|||||||
loader_version=0.15.11
|
loader_version=0.15.11
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=1.21.0.0
|
mod_version=1.21.0.1
|
||||||
maven_group=de.jottyfan.quickiemod
|
maven_group=de.jottyfan.quickiemod
|
||||||
archives_base_name=quickiemod
|
archives_base_name=quickiemod
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ public class QuickieMod implements ModInitializer {
|
|||||||
LOGGER.info("loading {}", MODID);
|
LOGGER.info("loading {}", MODID);
|
||||||
RegistryManager.registerBlockEntityTypes();
|
RegistryManager.registerBlockEntityTypes();
|
||||||
RegistryManager.registerItems();
|
RegistryManager.registerItems();
|
||||||
|
RegistryManager.registerEvents();
|
||||||
RegistryManager.registerBlocks();
|
RegistryManager.registerBlocks();
|
||||||
RegistryManager.registerFeatures();
|
RegistryManager.registerFeatures();
|
||||||
RegistryManager.registerItemGroup();
|
RegistryManager.registerItemGroup();
|
||||||
|
84
src/main/java/de/jottyfan/quickiemod/api/Neighborhood.java
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
package de.jottyfan.quickiemod.api;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.function.BiFunction;
|
||||||
|
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Neighborhood {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* find the same blocks that is next to the current position pos
|
||||||
|
*
|
||||||
|
* @param world the world to look for the blocks
|
||||||
|
* @param pos the starting position
|
||||||
|
* @param seekLimit the limit of seek operations
|
||||||
|
* @param checkLambda check functionality
|
||||||
|
* @return a set of found block positions
|
||||||
|
*/
|
||||||
|
public static final Set<BlockPos> findEqualBlock(World world, BlockPos pos, int seekLimit,
|
||||||
|
BiFunction<World, BlockPos, Boolean> checkLambda) {
|
||||||
|
Set<NeighborhoodBean> found = new HashSet<>();
|
||||||
|
found.add(new NeighborhoodBean(pos, true));
|
||||||
|
|
||||||
|
while (pos != null && found.size() < seekLimit) {
|
||||||
|
findNewNeihgbor(world, pos.east(), found, checkLambda);
|
||||||
|
findNewNeihgbor(world, pos.south(), found, checkLambda);
|
||||||
|
findNewNeihgbor(world, pos.west(), found, checkLambda);
|
||||||
|
findNewNeihgbor(world, pos.north(), found, checkLambda);
|
||||||
|
pos = findNextUncheckedField(found);
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<BlockPos> finals = new HashSet<>();
|
||||||
|
for (NeighborhoodBean bean : found) {
|
||||||
|
finals.add(bean.getPos());
|
||||||
|
}
|
||||||
|
return finals;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final BlockPos findNextUncheckedField(Set<NeighborhoodBean> found) {
|
||||||
|
Iterator<NeighborhoodBean> i = found.iterator();
|
||||||
|
while (i.hasNext()) {
|
||||||
|
NeighborhoodBean bean = i.next();
|
||||||
|
if (!bean.isChecked()) {
|
||||||
|
bean.setChecked(true);
|
||||||
|
return bean.getPos();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* find new neighbor at pos
|
||||||
|
*
|
||||||
|
* @param world the world
|
||||||
|
* @param pos the position
|
||||||
|
* @param found the set with all already found positions
|
||||||
|
* @return true or false
|
||||||
|
*/
|
||||||
|
private static final boolean findNewNeihgbor(World world, BlockPos pos, Set<NeighborhoodBean> found,
|
||||||
|
BiFunction<World, BlockPos, Boolean> checkLambda) {
|
||||||
|
NeighborhoodBean bean = new NeighborhoodBean(pos);
|
||||||
|
if (found.contains(bean) || found.contains(bean.over()) || found.contains(bean.below())) {
|
||||||
|
return false;
|
||||||
|
} else if (checkLambda.apply(world, pos).booleanValue()) {
|
||||||
|
found.add(bean);
|
||||||
|
return true;
|
||||||
|
} else if (checkLambda.apply(world, pos.up()).booleanValue()) {
|
||||||
|
found.add(new NeighborhoodBean(pos.up()));
|
||||||
|
return true;
|
||||||
|
} else if (checkLambda.apply(world, pos.down()).booleanValue()) {
|
||||||
|
found.add(new NeighborhoodBean(pos.down()));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,77 @@
|
|||||||
|
package de.jottyfan.quickiemod.api;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class NeighborhoodBean {
|
||||||
|
private final BlockPos pos;
|
||||||
|
private boolean checked;
|
||||||
|
|
||||||
|
public NeighborhoodBean(BlockPos pos, boolean checked) {
|
||||||
|
super();
|
||||||
|
this.pos = pos;
|
||||||
|
this.checked = checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public NeighborhoodBean(BlockPos pos) {
|
||||||
|
super();
|
||||||
|
this.pos = pos;
|
||||||
|
this.checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public NeighborhoodBean over() {
|
||||||
|
return new NeighborhoodBean(pos.up(), checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
public NeighborhoodBean below() {
|
||||||
|
return new NeighborhoodBean(pos.down(), checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
Boolean result = null;
|
||||||
|
if (this == obj) {
|
||||||
|
result = true;
|
||||||
|
} else if (obj == null) {
|
||||||
|
result = false;
|
||||||
|
} else if (getClass() != obj.getClass()) {
|
||||||
|
result = false;
|
||||||
|
} else {
|
||||||
|
NeighborhoodBean other = (NeighborhoodBean) obj;
|
||||||
|
result = Objects.equals(pos, other.pos);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the checked
|
||||||
|
*/
|
||||||
|
public boolean isChecked() {
|
||||||
|
return checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param checked the checked to set
|
||||||
|
*/
|
||||||
|
public void setChecked(boolean checked) {
|
||||||
|
this.checked = checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the pos
|
||||||
|
*/
|
||||||
|
public BlockPos getPos() {
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
}
|
@ -5,11 +5,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
||||||
import de.jottyfan.quickiemod.items.QuickieItems;
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
import net.minecraft.block.AbstractBlock;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.ExperienceDroppingBlock;
|
import net.minecraft.block.ExperienceDroppingBlock;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
||||||
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,7 +20,7 @@ import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
|||||||
public class BlockOreDeepslateSulphor extends ExperienceDroppingBlock {
|
public class BlockOreDeepslateSulphor extends ExperienceDroppingBlock {
|
||||||
|
|
||||||
public BlockOreDeepslateSulphor() {
|
public BlockOreDeepslateSulphor() {
|
||||||
super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(1.9f).requiresTool());
|
super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(1.9f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,11 +5,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
||||||
import de.jottyfan.quickiemod.items.QuickieItems;
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
import net.minecraft.block.AbstractBlock;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.ExperienceDroppingBlock;
|
import net.minecraft.block.ExperienceDroppingBlock;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
||||||
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -19,7 +19,7 @@ import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
|||||||
public class BlockOreNetherSulphor extends ExperienceDroppingBlock {
|
public class BlockOreNetherSulphor extends ExperienceDroppingBlock {
|
||||||
|
|
||||||
public BlockOreNetherSulphor() {
|
public BlockOreNetherSulphor() {
|
||||||
super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(2.1f).requiresTool());
|
super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(2.1f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,11 +5,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
||||||
import de.jottyfan.quickiemod.items.QuickieItems;
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
import net.minecraft.block.AbstractBlock;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.ExperienceDroppingBlock;
|
import net.minecraft.block.ExperienceDroppingBlock;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
||||||
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
import net.minecraft.util.math.random.Random;
|
import net.minecraft.util.math.random.Random;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,7 +20,7 @@ import net.minecraft.util.math.random.Random;
|
|||||||
public class BlockOreSalpeter extends ExperienceDroppingBlock {
|
public class BlockOreSalpeter extends ExperienceDroppingBlock {
|
||||||
|
|
||||||
public BlockOreSalpeter() {
|
public BlockOreSalpeter() {
|
||||||
super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(3.1f).requiresTool());
|
super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(3.1f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,12 +5,12 @@ import java.util.List;
|
|||||||
|
|
||||||
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
||||||
import de.jottyfan.quickiemod.items.QuickieItems;
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
import net.minecraft.block.AbstractBlock;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.block.ExperienceDroppingBlock;
|
import net.minecraft.block.ExperienceDroppingBlock;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
||||||
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
import net.minecraft.util.math.random.Random;
|
import net.minecraft.util.math.random.Random;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -21,7 +21,7 @@ import net.minecraft.util.math.random.Random;
|
|||||||
public class BlockOreSandSalpeter extends ExperienceDroppingBlock {
|
public class BlockOreSandSalpeter extends ExperienceDroppingBlock {
|
||||||
|
|
||||||
public BlockOreSandSalpeter() {
|
public BlockOreSandSalpeter() {
|
||||||
super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(2.9f).requiresTool());
|
super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(2.9f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,11 +5,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
||||||
import de.jottyfan.quickiemod.items.QuickieItems;
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
import net.minecraft.block.AbstractBlock;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.ExperienceDroppingBlock;
|
import net.minecraft.block.ExperienceDroppingBlock;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
||||||
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,7 +20,7 @@ import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
|||||||
public class BlockOreSulphor extends ExperienceDroppingBlock {
|
public class BlockOreSulphor extends ExperienceDroppingBlock {
|
||||||
|
|
||||||
public BlockOreSulphor() {
|
public BlockOreSulphor() {
|
||||||
super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(1.9f).requiresTool());
|
super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(1.9f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,11 +5,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
||||||
import de.jottyfan.quickiemod.items.QuickieItems;
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
import net.minecraft.block.AbstractBlock;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.ExperienceDroppingBlock;
|
import net.minecraft.block.ExperienceDroppingBlock;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
||||||
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -19,7 +19,7 @@ import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
|||||||
public class BlockSalpeter extends ExperienceDroppingBlock {
|
public class BlockSalpeter extends ExperienceDroppingBlock {
|
||||||
|
|
||||||
public BlockSalpeter() {
|
public BlockSalpeter() {
|
||||||
super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(0.5f));
|
super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(0.5f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -6,12 +6,12 @@ import java.util.List;
|
|||||||
import com.mojang.serialization.MapCodec;
|
import com.mojang.serialization.MapCodec;
|
||||||
|
|
||||||
import de.jottyfan.quickiemod.items.QuickieItems;
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
import net.minecraft.block.AbstractBlock;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.block.FallingBlock;
|
import net.minecraft.block.FallingBlock;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
||||||
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
import net.minecraft.util.math.random.Random;
|
import net.minecraft.util.math.random.Random;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -22,7 +22,7 @@ import net.minecraft.util.math.random.Random;
|
|||||||
public class BlockSandSalpeter extends FallingBlock {
|
public class BlockSandSalpeter extends FallingBlock {
|
||||||
|
|
||||||
public BlockSandSalpeter() {
|
public BlockSandSalpeter() {
|
||||||
super(AbstractBlock.Settings.create().hardness(3.1f).requiresTool());
|
super(Settings.create().strength(2.5f).hardness(3.1f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,11 +5,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
import de.jottyfan.quickiemod.blocks.help.IntProviderHelper;
|
||||||
import de.jottyfan.quickiemod.items.QuickieItems;
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
import net.minecraft.block.AbstractBlock;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.ExperienceDroppingBlock;
|
import net.minecraft.block.ExperienceDroppingBlock;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
||||||
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -19,7 +19,7 @@ import net.minecraft.loot.context.LootContextParameterSet.Builder;
|
|||||||
public class BlockSulphor extends ExperienceDroppingBlock {
|
public class BlockSulphor extends ExperienceDroppingBlock {
|
||||||
|
|
||||||
public BlockSulphor() {
|
public BlockSulphor() {
|
||||||
super(IntProviderHelper.of(0, 2), AbstractBlock.Settings.create().hardness(0.5f));
|
super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(0.5f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
package de.jottyfan.quickiemod.event;
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.event.Event;
|
||||||
|
import net.fabricmc.fabric.api.event.EventFactory;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface BreakBlockCallback {
|
||||||
|
Event<BreakBlockCallback> EVENT = EventFactory.createArrayBacked(BreakBlockCallback.class,
|
||||||
|
(listeners) -> (world, blockPos, blockState, playerEntity) -> {
|
||||||
|
for (BreakBlockCallback listener : listeners) {
|
||||||
|
ActionResult result = listener.injectBlockBreakCallback(world, blockPos, blockState, playerEntity);
|
||||||
|
if (result != ActionResult.PASS) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ActionResult.PASS;
|
||||||
|
});
|
||||||
|
|
||||||
|
ActionResult injectBlockBreakCallback(World world, BlockPos blockPos, BlockState blockState, PlayerEntity playerEntity);
|
||||||
|
}
|
193
src/main/java/de/jottyfan/quickiemod/event/EventBlockBreak.java
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
package de.jottyfan.quickiemod.event;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.QuickieMod;
|
||||||
|
import de.jottyfan.quickiemod.items.HarvestRange;
|
||||||
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
|
import de.jottyfan.quickiemod.items.ToolRangeable;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.block.Blocks;
|
||||||
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
|
import net.minecraft.entity.ExperienceOrbEntity;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class EventBlockBreak {
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger(QuickieMod.MODID);
|
||||||
|
|
||||||
|
private enum BlockBreakDirection {
|
||||||
|
UPWARDS, ALL;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void doBreakBlock(World world, BlockPos blockPos, BlockState blockState, PlayerEntity playerEntity) {
|
||||||
|
ItemStack mainHandItemStack = playerEntity.getEquippedStack(EquipmentSlot.MAINHAND);
|
||||||
|
if (mainHandItemStack != null) {
|
||||||
|
Item item = mainHandItemStack.getItem();
|
||||||
|
if (item instanceof ToolRangeable) {
|
||||||
|
ToolRangeable tool = (ToolRangeable) item;
|
||||||
|
Block block = blockState.getBlock();
|
||||||
|
int handled = handleRangeableTools(tool, mainHandItemStack, world, block, blockPos, playerEntity);
|
||||||
|
if (handled >= 255) {
|
||||||
|
// reward for using rangeable tool very successful
|
||||||
|
world.spawnEntity(
|
||||||
|
new ExperienceOrbEntity(world, blockPos.getX(), blockPos.getY(), blockPos.getZ(), handled / 255));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* handle the rangeable tools break event
|
||||||
|
*
|
||||||
|
* @param tool the tool that has been used
|
||||||
|
* @param itemStack the item stack
|
||||||
|
* @param world the world
|
||||||
|
* @param block the block to break
|
||||||
|
* @param pos the position of the current block
|
||||||
|
* @param player the current player
|
||||||
|
* @return number of affected blocks
|
||||||
|
*/
|
||||||
|
private int handleRangeableTools(ToolRangeable tool, ItemStack itemStack, World world, Block currentBlock,
|
||||||
|
BlockPos pos, PlayerEntity player) {
|
||||||
|
List<Block> validBlocks = tool.getBlockList(currentBlock);
|
||||||
|
HarvestRange range = tool.getRange(itemStack);
|
||||||
|
|
||||||
|
LOGGER.info("current tool: {}", tool);
|
||||||
|
|
||||||
|
if (QuickieItems.SPEEDPOWDERAXE.getItem().equals(tool)) {
|
||||||
|
return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.UPWARDS,
|
||||||
|
player, true);
|
||||||
|
} else if (QuickieItems.SPEEDPOWDERPICKAXE.getItem().equals(tool)) {
|
||||||
|
return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL,
|
||||||
|
player, false);
|
||||||
|
} else if (QuickieItems.SPEEDPOWDERSHOVEL.getItem().equals(tool)) {
|
||||||
|
return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL,
|
||||||
|
player, false);
|
||||||
|
} else if (QuickieItems.SPEEDPOWDERHOE.getItem().equals(tool)) {
|
||||||
|
return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL,
|
||||||
|
player, false);
|
||||||
|
} else if (QuickieItems.QUICKIEPOWDERAXE.getItem().equals(tool)) {
|
||||||
|
return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.UPWARDS,
|
||||||
|
player, true);
|
||||||
|
} else if (QuickieItems.QUICKIEPOWDERPICKAXE.getItem().equals(tool)) {
|
||||||
|
return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL,
|
||||||
|
player, false);
|
||||||
|
} else if (QuickieItems.QUICKIEPOWDERSHOVEL.getItem().equals(tool)) {
|
||||||
|
return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL,
|
||||||
|
player, false);
|
||||||
|
} else if (QuickieItems.QUICKIEPOWDERHOE.getItem().equals(tool)) {
|
||||||
|
return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL,
|
||||||
|
player, false);
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* break block recursively;
|
||||||
|
*
|
||||||
|
* @param visitedBlocks the positions of visited blocks
|
||||||
|
* @param world the world
|
||||||
|
* @param validBlocks the blocks to break
|
||||||
|
* @param tool the tool used
|
||||||
|
* @param range the range left over
|
||||||
|
* @param pos the position
|
||||||
|
* @param blockBreakDirection the direction for the recursive call
|
||||||
|
* @param player the player
|
||||||
|
* @return number of affected blocks
|
||||||
|
*/
|
||||||
|
private int breakBlockRecursive(List<String> visitedBlocks, World world, List<Block> validBlocks, BlockPos pos,
|
||||||
|
ToolRangeable tool, HarvestRange range, BlockBreakDirection blockBreakDirection, PlayerEntity player,
|
||||||
|
boolean breakLeaves) {
|
||||||
|
if (visitedBlocks.contains(pos.toString())) {
|
||||||
|
return 0;
|
||||||
|
} else if (validBlocks == null) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
visitedBlocks.add(pos.toString());
|
||||||
|
}
|
||||||
|
Integer affected = 0;
|
||||||
|
BlockState blockState = world.getBlockState(pos);
|
||||||
|
if (tool.canBreakNeighbors(blockState)) {
|
||||||
|
Block currentBlock = blockState.getBlock();
|
||||||
|
if (validBlocks.contains(currentBlock)) {
|
||||||
|
Block.dropStacks(blockState, world, pos); // includes xorbs
|
||||||
|
affected += 1;
|
||||||
|
world.setBlockState(pos, Blocks.AIR.getDefaultState());
|
||||||
|
if (range == null || range.getxRange() > 1 || range.getyRange() > 1 || range.getzRange() > 1) {
|
||||||
|
HarvestRange nextRadius = range == null ? null : range.addXYZ(-1);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.north(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.north().east(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.north().west(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.south(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.south().east(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.south().west(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.east(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.west(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.up(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.up().north(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.up().north().east(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.up().north().west(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.up().east(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.up().west(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.up().south().east(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.up().south().west(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.up().south(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
|
||||||
|
if (BlockBreakDirection.ALL.equals(blockBreakDirection)) {
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.down(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.down().north(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.down().south(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.down().east(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.down().west(), tool, nextRadius,
|
||||||
|
blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.down().north().east(), tool,
|
||||||
|
nextRadius, blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.down().north().west(), tool,
|
||||||
|
nextRadius, blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.down().south().east(), tool,
|
||||||
|
nextRadius, blockBreakDirection, player, breakLeaves);
|
||||||
|
affected += breakBlockRecursive(visitedBlocks, world, validBlocks, pos.down().south().west(), tool,
|
||||||
|
nextRadius, blockBreakDirection, player, breakLeaves);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return affected;
|
||||||
|
}
|
||||||
|
}
|
@ -6,6 +6,8 @@ import org.slf4j.LoggerFactory;
|
|||||||
import de.jottyfan.quickiemod.QuickieMod;
|
import de.jottyfan.quickiemod.QuickieMod;
|
||||||
import de.jottyfan.quickiemod.blockentity.BlockEntityTypes;
|
import de.jottyfan.quickiemod.blockentity.BlockEntityTypes;
|
||||||
import de.jottyfan.quickiemod.blocks.QuickieBlocks;
|
import de.jottyfan.quickiemod.blocks.QuickieBlocks;
|
||||||
|
import de.jottyfan.quickiemod.event.BreakBlockCallback;
|
||||||
|
import de.jottyfan.quickiemod.event.EventBlockBreak;
|
||||||
import de.jottyfan.quickiemod.items.QuickieItems;
|
import de.jottyfan.quickiemod.items.QuickieItems;
|
||||||
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
|
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
|
||||||
import net.fabricmc.fabric.api.biome.v1.BiomeSelectors;
|
import net.fabricmc.fabric.api.biome.v1.BiomeSelectors;
|
||||||
@ -21,6 +23,7 @@ import net.minecraft.registry.Registry;
|
|||||||
import net.minecraft.registry.RegistryKey;
|
import net.minecraft.registry.RegistryKey;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,7 +50,7 @@ public class RegistryManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static final void registerItems() {
|
public static final void registerItems() {
|
||||||
LOGGER.debug("registering items");
|
LOGGER.info("registering items");
|
||||||
for (QuickieItems i : QuickieItems.values()) {
|
for (QuickieItems i : QuickieItems.values()) {
|
||||||
Registry.register(Registries.ITEM, Identifier.of(QuickieMod.MODID, i.getName()), i.getItem());
|
Registry.register(Registries.ITEM, Identifier.of(QuickieMod.MODID, i.getName()), i.getItem());
|
||||||
}
|
}
|
||||||
@ -60,7 +63,7 @@ public class RegistryManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static final void registerBlocks() {
|
public static final void registerBlocks() {
|
||||||
LOGGER.debug("registering blocks");
|
LOGGER.info("registering blocks");
|
||||||
for (QuickieBlocks b : QuickieBlocks.values()) {
|
for (QuickieBlocks b : QuickieBlocks.values()) {
|
||||||
Registry.register(Registries.BLOCK, Identifier.of(QuickieMod.MODID, b.getName()), b.getBlock());
|
Registry.register(Registries.BLOCK, Identifier.of(QuickieMod.MODID, b.getName()), b.getBlock());
|
||||||
Registry.register(Registries.ITEM, Identifier.of(QuickieMod.MODID, b.getName()), new BlockItem(b.getBlock(), new Settings()));
|
Registry.register(Registries.ITEM, Identifier.of(QuickieMod.MODID, b.getName()), new BlockItem(b.getBlock(), new Settings()));
|
||||||
@ -77,6 +80,14 @@ public class RegistryManager {
|
|||||||
FeaturesManager.netherOres());
|
FeaturesManager.netherOres());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static final void registerEvents() {
|
||||||
|
LOGGER.info("registering events");
|
||||||
|
BreakBlockCallback.EVENT.register((world, blockPos, blockState, playerEntity) -> {
|
||||||
|
new EventBlockBreak().doBreakBlock(world, blockPos, blockState, playerEntity);
|
||||||
|
return ActionResult.SUCCESS;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public static final void registerBlockEntityTypes() {
|
public static final void registerBlockEntityTypes() {
|
||||||
new BlockEntityTypes();
|
new BlockEntityTypes();
|
||||||
}
|
}
|
||||||
|
101
src/main/java/de/jottyfan/quickiemod/items/HarvestRange.java
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class HarvestRange implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private int xRange;
|
||||||
|
private int yRange;
|
||||||
|
private int zRange;
|
||||||
|
|
||||||
|
public HarvestRange(int xyzRange) {
|
||||||
|
super();
|
||||||
|
this.xRange = xyzRange;
|
||||||
|
this.yRange = xyzRange;
|
||||||
|
this.zRange = xyzRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HarvestRange(int[] xyzRange) {
|
||||||
|
super();
|
||||||
|
this.xRange = xyzRange[0];
|
||||||
|
this.yRange = xyzRange[1];
|
||||||
|
this.zRange = xyzRange[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
public HarvestRange(int xRange, int yRange, int zRange) {
|
||||||
|
super();
|
||||||
|
this.xRange = xRange;
|
||||||
|
this.yRange = yRange;
|
||||||
|
this.zRange = zRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* add i to x, y and z and return the resulting class as a new one
|
||||||
|
*
|
||||||
|
* @param i
|
||||||
|
* the summand
|
||||||
|
* @return the new class
|
||||||
|
*/
|
||||||
|
public HarvestRange addXYZ(int i) {
|
||||||
|
return new HarvestRange(xRange + i, yRange + i, zRange + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get range as int array
|
||||||
|
*
|
||||||
|
* @return the int array
|
||||||
|
*/
|
||||||
|
public int[] getRangeAsArray() {
|
||||||
|
return new int[] {xRange, yRange, zRange};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the xRange
|
||||||
|
*/
|
||||||
|
public int getxRange() {
|
||||||
|
return xRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param xRange
|
||||||
|
* the xRange to set
|
||||||
|
*/
|
||||||
|
public void setxRange(int xRange) {
|
||||||
|
this.xRange = xRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the yRange
|
||||||
|
*/
|
||||||
|
public int getyRange() {
|
||||||
|
return yRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param yRange
|
||||||
|
* the yRange to set
|
||||||
|
*/
|
||||||
|
public void setyRange(int yRange) {
|
||||||
|
this.yRange = yRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the zRange
|
||||||
|
*/
|
||||||
|
public int getzRange() {
|
||||||
|
return zRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param zRange
|
||||||
|
* the zRange to set
|
||||||
|
*/
|
||||||
|
public void setzRange(int zRange) {
|
||||||
|
this.zRange = zRange;
|
||||||
|
}
|
||||||
|
}
|
@ -9,7 +9,22 @@ import net.minecraft.item.Item;
|
|||||||
*/
|
*/
|
||||||
public enum QuickieItems {
|
public enum QuickieItems {
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
SPEEDPOWDERSHEARS(new ItemSpeedpowdershears(), "speedpowdershears"),
|
SPEEDPOWDER(new ItemSpeedpowder(), "speedpowder"),
|
||||||
|
QUICKIEPOWDER(new ItemQuickiepowder(), "quickiepowder"),
|
||||||
|
OXIDIZEDCOPPERPOWDER(new ItemOxidizedcopperpowder(), "oxidizedcopperpowder"),
|
||||||
|
SPEEDINGOT(new ItemSpeedingot(), "speedingot"),
|
||||||
|
QUICKIEINGOT(new ItemQuickieingot(), "quickieingot"),
|
||||||
|
SPEEDPOWDERAXE(new ToolSpeedpowderAxe(), "speedpowderaxe"),
|
||||||
|
SPEEDPOWDERPICKAXE(new ToolSpeedpowderPickaxe(), "speedpowderpickaxe"),
|
||||||
|
SPEEDPOWDERSHOVEL(new ToolSpeedpowderShovel(), "speedpowdershovel"),
|
||||||
|
SPEEDPOWDERHOE(new ToolSpeedpowderHoe(), "speedpowderhoe"),
|
||||||
|
SPEEDPOWDERWATERHOE(new ToolSpeedpowderWaterHoe(), "speedpowderwaterhoe"),
|
||||||
|
SPEEDPOWDERSHEARS(new ToolSpeedpowderShears(), "speedpowdershears"),
|
||||||
|
QUICKIEPOWDERAXE(new ToolQuickiepowderAxe(), "quickiepowderaxe"),
|
||||||
|
QUICKIEPOWDERPICKAXE(new ToolQuickiepowderPickaxe(), "quickiepowderpickaxe"),
|
||||||
|
QUICKIEPOWDERSHOVEL(new ToolQuickiepowderShovel(), "quickiepowdershovel"),
|
||||||
|
QUICKIEPOWDERHOE(new ToolQuickiepowderHoe(), "quickiepowderhoe"),
|
||||||
|
QUICKIEPOWDERWATERHOE(new ToolQuickiepowderWaterHoe(), "quickiepowderwaterhoe"),
|
||||||
ROTTEN_FLESH_STRIPES(new ItemRottenFleshStripes(), "rotten_flesh_stripes"),
|
ROTTEN_FLESH_STRIPES(new ItemRottenFleshStripes(), "rotten_flesh_stripes"),
|
||||||
CARROTSTACK(new ItemCarrotstack(), "carrotstack"),
|
CARROTSTACK(new ItemCarrotstack(), "carrotstack"),
|
||||||
COTTON(new ItemCotton(), "cotton"),
|
COTTON(new ItemCotton(), "cotton"),
|
||||||
@ -20,12 +35,7 @@ public enum QuickieItems {
|
|||||||
CANOLABOTTLESTACK(new ItemCanolabottlestack(), "canolabottlestack"),
|
CANOLABOTTLESTACK(new ItemCanolabottlestack(), "canolabottlestack"),
|
||||||
STUB(new ItemStub(), "stub"),
|
STUB(new ItemStub(), "stub"),
|
||||||
SALPETER(new ItemSalpeter(), "salpeter"),
|
SALPETER(new ItemSalpeter(), "salpeter"),
|
||||||
SULPHOR(new ItemSulphor(), "sulphor"),
|
SULPHOR(new ItemSulphor(), "sulphor");
|
||||||
SPEEDPOWDER(new ItemSpeedpowder(), "speedpowder"),
|
|
||||||
QUICKIEPOWDER(new ItemQuickiepowder(), "quickiepowder"),
|
|
||||||
OXIDIZEDCOPPERPOWDER(new ItemOxidizedcopperpowder(), "oxidizedcopperpowder"),
|
|
||||||
SPEEDINGOT(new ItemSpeedingot(), "speedingot"),
|
|
||||||
QUICKIEINGOT(new ItemQuickieingot(), "quickieingot");
|
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
|
||||||
private final Item item;
|
private final Item item;
|
||||||
|
@ -0,0 +1,26 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial;
|
||||||
|
import net.minecraft.item.AxeItem;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolQuickiepowderAxe extends ToolRangeableAxe {
|
||||||
|
|
||||||
|
private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 2400, 15, 1f, QuickieItems.SPEEDINGOT.getItem());
|
||||||
|
|
||||||
|
public ToolQuickiepowderAxe() {
|
||||||
|
super(MATERIAL, new Item.Settings().attributeModifiers(AxeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HarvestRange getRange(ItemStack stack) {
|
||||||
|
// TODO: get the range from the stack
|
||||||
|
return new HarvestRange(64, 128, 64); // trees bigger than that are too heavy for one small axe...
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial;
|
||||||
|
import net.minecraft.item.HoeItem;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolQuickiepowderHoe extends ToolRangeableHoe {
|
||||||
|
|
||||||
|
public static final Integer DEFAULT_PLOW_RANGE = 4;
|
||||||
|
private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 2400, 15, 1f, QuickieItems.SPEEDINGOT.getItem());
|
||||||
|
|
||||||
|
public ToolQuickiepowderHoe() {
|
||||||
|
super(MATERIAL, new Item.Settings().attributeModifiers(HoeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F)), new HarvestRange(DEFAULT_PLOW_RANGE));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.PickaxeItem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolQuickiepowderPickaxe extends PickaxeItem implements ToolRangeable {
|
||||||
|
|
||||||
|
public static final int[] DEFAULT_HARVEST_RANGE = new int[] { 6, 6, 6 };
|
||||||
|
private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 2400, 15, 1f, QuickieItems.SPEEDINGOT.getItem());
|
||||||
|
|
||||||
|
public ToolQuickiepowderPickaxe() {
|
||||||
|
super(MATERIAL, new Item.Settings().attributeModifiers(PickaxeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HarvestRange getRange(ItemStack stack) {
|
||||||
|
return new HarvestRange(DEFAULT_HARVEST_RANGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBreakNeighbors(BlockState blockIn) {
|
||||||
|
return new ItemStack(this).isSuitableFor(blockIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Block> getBlockList(Block block) {
|
||||||
|
return Lists.newArrayList(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) {
|
||||||
|
// CommonToolCode.onItemRightClick(worldIn, playerIn, handIn);
|
||||||
|
// return super.onItemRightClick(worldIn, playerIn, handIn);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void addInformation(ItemStack stack, World worldIn, List<ITextComponent> tooltip, ITooltipFlag flagIn) {
|
||||||
|
// CommonToolCode.addInformation(stack, worldIn, tooltip, flagIn);
|
||||||
|
// super.addInformation(stack, worldIn, tooltip, flagIn);
|
||||||
|
// }
|
||||||
|
}
|
@ -0,0 +1,97 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.ItemUsageContext;
|
||||||
|
import net.minecraft.item.ShovelItem;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolQuickiepowderShovel extends ShovelItem implements ToolRangeable {
|
||||||
|
public static final Integer DEFAULT_HARVEST_RANGE = 6;
|
||||||
|
private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 2400, 15, 1f, QuickieItems.SPEEDINGOT.getItem());
|
||||||
|
public HarvestRange range;
|
||||||
|
|
||||||
|
public ToolQuickiepowderShovel() {
|
||||||
|
super(MATERIAL, new Item.Settings().attributeModifiers(ShovelItem.createAttributeModifiers(MATERIAL, 7F, -3.1F)));
|
||||||
|
this.range = new HarvestRange(DEFAULT_HARVEST_RANGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createPathOnGrass(World world, BlockPos pos, Direction side) {
|
||||||
|
BlockState blockState = world.getBlockState(pos);
|
||||||
|
if (blockState.isAir()) {
|
||||||
|
// try to find one underneath
|
||||||
|
pos = pos.down();
|
||||||
|
blockState = world.getBlockState(pos);
|
||||||
|
} else if (!world.getBlockState(pos.up()).isAir()) {
|
||||||
|
pos = pos.up();
|
||||||
|
blockState = world.getBlockState(pos);
|
||||||
|
}
|
||||||
|
if (side != Direction.DOWN) {
|
||||||
|
BlockState blockState2 = (BlockState) PATH_STATES.get(blockState.getBlock());
|
||||||
|
if (blockState2 != null && world.getBlockState(pos.up()).isAir()) {
|
||||||
|
if (!world.isClient) {
|
||||||
|
world.setBlockState(pos, blockState2, 11);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionResult useOnBlock(ItemUsageContext context) {
|
||||||
|
World world = context.getWorld();
|
||||||
|
BlockPos pos = context.getBlockPos();
|
||||||
|
BlockPos[] positions = new BlockPos[] { pos.north().north().west().west(), pos.north().north().west(),
|
||||||
|
pos.north().north(), pos.north().north().east(), pos.north().north().east().east(), pos.north().west().west(),
|
||||||
|
pos.north().west(), pos.north(), pos.north().east(), pos.north().east().east(), pos.west().west(), pos.west(),
|
||||||
|
pos, pos.east(), pos.east().east(), pos.south().west().west(), pos.south().west(), pos.south(),
|
||||||
|
pos.south().east(), pos.south().east().east(), pos.south().south().west().west(), pos.south().south().west(),
|
||||||
|
pos.south().south(), pos.south().south().east(), pos.south().south().east().east() };
|
||||||
|
for (BlockPos p : positions) {
|
||||||
|
createPathOnGrass(world, p, context.getSide());
|
||||||
|
}
|
||||||
|
return super.useOnBlock(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HarvestRange getRange(ItemStack stack) {
|
||||||
|
// TODO: get range from stack
|
||||||
|
return range;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBreakNeighbors(BlockState blockState) {
|
||||||
|
return new ItemStack(this).isSuitableFor(blockState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Block> getBlockList(Block block) {
|
||||||
|
return Lists.newArrayList(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) {
|
||||||
|
// CommonToolCode.onItemRightClick(worldIn, playerIn, handIn);
|
||||||
|
// return super.onItemRightClick(worldIn, playerIn, handIn);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void addInformation(ItemStack stack, World worldIn, List<ITextComponent> tooltip, ITooltipFlag flagIn) {
|
||||||
|
// CommonToolCode.addInformation(stack, worldIn, tooltip, flagIn);
|
||||||
|
// super.addInformation(stack, worldIn, tooltip, flagIn);
|
||||||
|
// }
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.block.Blocks;
|
||||||
|
import net.minecraft.entity.ItemEntity;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.ItemUsageContext;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolQuickiepowderWaterHoe extends ToolQuickiepowderHoe {
|
||||||
|
@Override
|
||||||
|
public ActionResult useOnBlock(ItemUsageContext context) {
|
||||||
|
ActionResult res = super.useOnBlock(context);
|
||||||
|
if (!ActionResult.PASS.equals(res)) {
|
||||||
|
BlockPos pos = context.getBlockPos();
|
||||||
|
World world = context.getWorld();
|
||||||
|
BlockState oldBlockState = world.getBlockState(pos);
|
||||||
|
world.setBlockState(pos, Blocks.WATER.getDefaultState());
|
||||||
|
Hand hand = context.getHand();
|
||||||
|
PlayerEntity player = context.getPlayer();
|
||||||
|
ItemStack oldTool = player.getStackInHand(hand);
|
||||||
|
ItemStack newTool = new ItemStack(QuickieItems.QUICKIEPOWDERHOE.getItem());
|
||||||
|
newTool.setDamage(oldTool.getDamage());
|
||||||
|
world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(oldBlockState.getBlock())));
|
||||||
|
player.setStackInHand(hand, newTool);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface ToolRangeable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param stack the item stack that keeps the range
|
||||||
|
* @return range of blocks to be harvested
|
||||||
|
*/
|
||||||
|
public HarvestRange getRange(ItemStack stack);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check if this block state is one that affects the neighbor blocks to break
|
||||||
|
* also if they are from the same type
|
||||||
|
*
|
||||||
|
* @param blockState the block state of the current block
|
||||||
|
* @return true or false
|
||||||
|
*/
|
||||||
|
public boolean canBreakNeighbors(BlockState blockState);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get list of blocks that belong together (could be useful for stripped logs)
|
||||||
|
*
|
||||||
|
* @param block of the set
|
||||||
|
* @return the list of blocks or null if not found
|
||||||
|
*/
|
||||||
|
public List<Block> getBlockList(Block block);
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.block.LeavesBlock;
|
||||||
|
import net.minecraft.item.AxeItem;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.ToolMaterial;
|
||||||
|
import net.minecraft.registry.tag.BlockTags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public abstract class ToolRangeableAxe extends AxeItem implements ToolRangeable {
|
||||||
|
|
||||||
|
protected ToolRangeableAxe(ToolMaterial material, Item.Settings settings) {
|
||||||
|
super(material, settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HarvestRange getRange(ItemStack stack) {
|
||||||
|
// TODO: get the range from the stack
|
||||||
|
return new HarvestRange(16, 32, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check if the block is a leaves block
|
||||||
|
*
|
||||||
|
* @param blockIn the block
|
||||||
|
* @return true or false
|
||||||
|
*/
|
||||||
|
private boolean isLeavesBlock(BlockState blockIn) {
|
||||||
|
boolean vanillaLeaves = blockIn.getBlock() instanceof LeavesBlock;
|
||||||
|
boolean terrestriaLeaves = false;
|
||||||
|
try {
|
||||||
|
Class<?> extendedLeavesBlock = Class.forName("com.terraformersmc.terraform.leaves.block.ExtendedLeavesBlock");
|
||||||
|
terrestriaLeaves = extendedLeavesBlock.isInstance(blockIn.getBlock());
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
// no terrestria mod available, so ignore this
|
||||||
|
// using this approach instead of the instanceof functionality, we don't need to refer to terrestria
|
||||||
|
// and omit a crash on installations that do not have or want terrestria available
|
||||||
|
}
|
||||||
|
boolean blockTagLeaves = blockIn.isIn(BlockTags.LEAVES);
|
||||||
|
return vanillaLeaves || terrestriaLeaves || blockTagLeaves;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBreakNeighbors(BlockState blockIn) {
|
||||||
|
return new ItemStack(this).isSuitableFor(blockIn) || isLeavesBlock(blockIn) || blockIn.isIn(BlockTags.LOGS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Block> getBlockList(Block block) {
|
||||||
|
return Lists.newArrayList(block);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,97 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.block.Blocks;
|
||||||
|
import net.minecraft.block.CropBlock;
|
||||||
|
import net.minecraft.item.HoeItem;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.ItemUsageContext;
|
||||||
|
import net.minecraft.item.ToolMaterial;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.hit.BlockHitResult;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.util.math.Vec3i;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public abstract class ToolRangeableHoe extends HoeItem implements ToolRangeable {
|
||||||
|
|
||||||
|
public HarvestRange range;
|
||||||
|
|
||||||
|
public ToolRangeableHoe(ToolMaterial material, Settings settings, HarvestRange range) {
|
||||||
|
super(material, settings);
|
||||||
|
this.range = range;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionResult useOnBlock(ItemUsageContext context) {
|
||||||
|
ActionResult res = super.useOnBlock(context);
|
||||||
|
boolean isCrop = context.getWorld().getBlockState(context.getBlockPos()).getBlock() instanceof CropBlock;
|
||||||
|
if (!ActionResult.PASS.equals(res) || isCrop) {
|
||||||
|
for (int x = -this.range.getxRange(); x <= this.range.getxRange(); x++) {
|
||||||
|
for (int y = -this.range.getyRange(); y <= this.range.getyRange(); y++) {
|
||||||
|
for (int z = -this.range.getzRange(); z <= this.range.getzRange(); z++) {
|
||||||
|
if (!isCrop) {
|
||||||
|
removePossibleGrass(context.getWorld(), new BlockPos(x, y, z));
|
||||||
|
BlockHitResult bhr = new BlockHitResult(context.getHitPos(), Direction.UP,
|
||||||
|
context.getBlockPos().add(new Vec3i(x, y, z)), false);
|
||||||
|
ItemUsageContext ctx = new ItemUsageContext(context.getPlayer(), context.getHand(), bhr);
|
||||||
|
super.useOnBlock(ctx);
|
||||||
|
} else {
|
||||||
|
harvestIfPossible(context.getBlockPos().add(x, y, z), context.getWorld());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removePossibleGrass(World world, BlockPos pos) {
|
||||||
|
Block block = world.getBlockState(pos).getBlock();
|
||||||
|
Boolean grassFound = Blocks.FERN.equals(block) || Blocks.LARGE_FERN.equals(block)
|
||||||
|
|| Blocks.SHORT_GRASS.equals(block) || Blocks.TALL_GRASS.equals(block);
|
||||||
|
if (grassFound) {
|
||||||
|
world.breakBlock(pos, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void harvestIfPossible(BlockPos pos, World world) {
|
||||||
|
BlockState blockState = world.getBlockState(pos);
|
||||||
|
Block block = blockState.getBlock();
|
||||||
|
if (block instanceof CropBlock) {
|
||||||
|
CropBlock cBlock = (CropBlock) block;
|
||||||
|
if (cBlock.isMature(blockState)) {
|
||||||
|
Block.dropStacks(blockState, world, pos);
|
||||||
|
world.setBlockState(pos, cBlock.withAge(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HarvestRange getRange(ItemStack stack) {
|
||||||
|
// TODO: get range from stack
|
||||||
|
return range;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBreakNeighbors(BlockState blockState) {
|
||||||
|
return new ItemStack(this).isSuitableFor(blockState) || Blocks.TALL_GRASS.equals(blockState.getBlock())
|
||||||
|
|| Blocks.FERN.equals(blockState.getBlock()) || Blocks.LARGE_FERN.equals(blockState.getBlock());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Block> getBlockList(Block block) {
|
||||||
|
return Lists.newArrayList(block);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.PickaxeItem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolSpeedpowderAxe extends ToolRangeableAxe {
|
||||||
|
|
||||||
|
private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 800, 15, 1f, QuickieItems.SPEEDINGOT.getItem());
|
||||||
|
|
||||||
|
public ToolSpeedpowderAxe() {
|
||||||
|
super(MATERIAL, new Item.Settings().attributeModifiers(PickaxeItem.createAttributeModifiers(MATERIAL, 7f, -3.1f)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HarvestRange getRange(ItemStack stack) {
|
||||||
|
// TODO: get the range from the stack
|
||||||
|
return new HarvestRange(32, 64, 32);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial;
|
||||||
|
import net.minecraft.item.HoeItem;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolSpeedpowderHoe extends ToolRangeableHoe {
|
||||||
|
|
||||||
|
public static final Integer DEFAULT_PLOW_RANGE = 2;
|
||||||
|
private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 800, 15, 1f, QuickieItems.SPEEDINGOT.getItem());
|
||||||
|
|
||||||
|
public ToolSpeedpowderHoe() {
|
||||||
|
super(MATERIAL, new Item.Settings().attributeModifiers(HoeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F)), new HarvestRange(DEFAULT_PLOW_RANGE));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.item.AxeItem;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.PickaxeItem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolSpeedpowderPickaxe extends PickaxeItem implements ToolRangeable {
|
||||||
|
|
||||||
|
public static final int[] DEFAULT_HARVEST_RANGE = new int[] { 3, 3, 3 };
|
||||||
|
private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 800, 15, 1f, QuickieItems.SPEEDINGOT.getItem());
|
||||||
|
|
||||||
|
public ToolSpeedpowderPickaxe() {
|
||||||
|
super(MATERIAL, new Item.Settings().attributeModifiers(AxeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HarvestRange getRange(ItemStack stack) {
|
||||||
|
return new HarvestRange(DEFAULT_HARVEST_RANGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBreakNeighbors(BlockState blockIn) {
|
||||||
|
return new ItemStack(this).isSuitableFor(blockIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Block> getBlockList(Block block) {
|
||||||
|
return Lists.newArrayList(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) {
|
||||||
|
// CommonToolCode.onItemRightClick(worldIn, playerIn, handIn);
|
||||||
|
// return super.onItemRightClick(worldIn, playerIn, handIn);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void addInformation(ItemStack stack, World worldIn, List<ITextComponent> tooltip, ITooltipFlag flagIn) {
|
||||||
|
// CommonToolCode.addInformation(stack, worldIn, tooltip, flagIn);
|
||||||
|
// super.addInformation(stack, worldIn, tooltip, flagIn);
|
||||||
|
// }
|
||||||
|
}
|
@ -0,0 +1,96 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import net.minecraft.component.DataComponentTypes;
|
||||||
|
import net.minecraft.entity.ItemEntity;
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
import net.minecraft.entity.passive.ChickenEntity;
|
||||||
|
import net.minecraft.entity.passive.CowEntity;
|
||||||
|
import net.minecraft.entity.passive.HorseEntity;
|
||||||
|
import net.minecraft.entity.passive.SheepEntity;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.Items;
|
||||||
|
import net.minecraft.item.ShearsItem;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.DyeColor;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolSpeedpowderShears extends ShearsItem {
|
||||||
|
|
||||||
|
public ToolSpeedpowderShears() {
|
||||||
|
super(new Item.Settings().component(DataComponentTypes.TOOL, ShearsItem.createToolComponent()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionResult useOnEntity(ItemStack stack, PlayerEntity user, LivingEntity entity, Hand hand) {
|
||||||
|
Vec3d pos = entity.getPos();
|
||||||
|
Integer amount = 3 + new Random().nextInt(4);
|
||||||
|
if (entity instanceof SheepEntity) {
|
||||||
|
SheepEntity sheep = (SheepEntity) entity;
|
||||||
|
if (sheep.isShearable()) {
|
||||||
|
sheep.setSheared(true);
|
||||||
|
sheep.playAmbientSound();
|
||||||
|
DyeColor color = sheep.getColor();
|
||||||
|
Item item = Items.WHITE_WOOL;
|
||||||
|
if (color.equals(DyeColor.BLACK)) {
|
||||||
|
item = Items.BLACK_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.GRAY)) {
|
||||||
|
item = Items.GRAY_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.LIGHT_GRAY)) {
|
||||||
|
item = Items.LIGHT_GRAY_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.BROWN)) {
|
||||||
|
item = Items.BROWN_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.BLUE)) {
|
||||||
|
item = Items.BLUE_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.LIGHT_BLUE)) {
|
||||||
|
item = Items.LIGHT_BLUE_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.GREEN)) {
|
||||||
|
item = Items.GREEN_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.LIME)) {
|
||||||
|
item = Items.LIME_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.CYAN)) {
|
||||||
|
item = Items.CYAN_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.MAGENTA)) {
|
||||||
|
item = Items.MAGENTA_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.ORANGE)) {
|
||||||
|
item = Items.ORANGE_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.PINK)) {
|
||||||
|
item = Items.PINK_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.PURPLE)) {
|
||||||
|
item = Items.PURPLE_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.RED)) {
|
||||||
|
item = Items.RED_WOOL;
|
||||||
|
} else if (color.equals(DyeColor.YELLOW)) {
|
||||||
|
item = Items.YELLOW_WOOL;
|
||||||
|
}
|
||||||
|
user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(item, amount)));
|
||||||
|
return ActionResult.SUCCESS;
|
||||||
|
}
|
||||||
|
} else if (entity instanceof HorseEntity) {
|
||||||
|
HorseEntity horse = (HorseEntity) entity;
|
||||||
|
horse.playAmbientSound();
|
||||||
|
user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.LEATHER, amount)));
|
||||||
|
return ActionResult.SUCCESS;
|
||||||
|
} else if (entity instanceof CowEntity) {
|
||||||
|
CowEntity cow = (CowEntity) entity;
|
||||||
|
cow.playAmbientSound();
|
||||||
|
user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.LEATHER, amount)));
|
||||||
|
return ActionResult.SUCCESS;
|
||||||
|
} else if (entity instanceof ChickenEntity) {
|
||||||
|
ChickenEntity cow = (ChickenEntity) entity;
|
||||||
|
cow.playAmbientSound();
|
||||||
|
user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.FEATHER, amount)));
|
||||||
|
return ActionResult.SUCCESS;
|
||||||
|
}
|
||||||
|
return ActionResult.PASS;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,96 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.ItemUsageContext;
|
||||||
|
import net.minecraft.item.ShovelItem;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolSpeedpowderShovel extends ShovelItem implements ToolRangeable {
|
||||||
|
public static final Integer DEFAULT_HARVEST_RANGE = 3;
|
||||||
|
private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 800, 15, 1f, QuickieItems.SPEEDINGOT.getItem());
|
||||||
|
public HarvestRange range;
|
||||||
|
|
||||||
|
public ToolSpeedpowderShovel() {
|
||||||
|
super(MATERIAL, new Item.Settings().attributeModifiers(ShovelItem.createAttributeModifiers(MATERIAL, 7F, -3.1F)));
|
||||||
|
this.range = new HarvestRange(DEFAULT_HARVEST_RANGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createPathOnGrass(World world, BlockPos pos, Direction side) {
|
||||||
|
BlockState blockState = world.getBlockState(pos);
|
||||||
|
if (blockState.isAir()) {
|
||||||
|
// try to find one underneath
|
||||||
|
pos = pos.down();
|
||||||
|
blockState = world.getBlockState(pos);
|
||||||
|
} else if (!world.getBlockState(pos.up()).isAir()) {
|
||||||
|
pos = pos.up();
|
||||||
|
blockState = world.getBlockState(pos);
|
||||||
|
}
|
||||||
|
if (side != Direction.DOWN) {
|
||||||
|
BlockState blockState2 = (BlockState) PATH_STATES.get(blockState.getBlock());
|
||||||
|
if (blockState2 != null && world.getBlockState(pos.up()).isAir()) {
|
||||||
|
if (!world.isClient) {
|
||||||
|
world.setBlockState(pos, blockState2, 11);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionResult useOnBlock(ItemUsageContext context) {
|
||||||
|
World world = context.getWorld();
|
||||||
|
BlockPos pos = context.getBlockPos();
|
||||||
|
createPathOnGrass(world, pos.north(), context.getSide());
|
||||||
|
createPathOnGrass(world, pos.north().east(), context.getSide());
|
||||||
|
createPathOnGrass(world, pos.north().west(), context.getSide());
|
||||||
|
createPathOnGrass(world, pos.east(), context.getSide());
|
||||||
|
createPathOnGrass(world, pos.west(), context.getSide());
|
||||||
|
createPathOnGrass(world, pos.south(), context.getSide());
|
||||||
|
createPathOnGrass(world, pos.south().east(), context.getSide());
|
||||||
|
createPathOnGrass(world, pos.south().west(), context.getSide());
|
||||||
|
return super.useOnBlock(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HarvestRange getRange(ItemStack stack) {
|
||||||
|
// TODO: get range from stack
|
||||||
|
return range;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBreakNeighbors(BlockState blockState) {
|
||||||
|
return new ItemStack(this).isSuitableFor(blockState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Block> getBlockList(Block block) {
|
||||||
|
return Lists.newArrayList(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) {
|
||||||
|
// CommonToolCode.onItemRightClick(worldIn, playerIn, handIn);
|
||||||
|
// return super.onItemRightClick(worldIn, playerIn, handIn);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void addInformation(ItemStack stack, World worldIn, List<ITextComponent> tooltip, ITooltipFlag flagIn) {
|
||||||
|
// CommonToolCode.addInformation(stack, worldIn, tooltip, flagIn);
|
||||||
|
// super.addInformation(stack, worldIn, tooltip, flagIn);
|
||||||
|
// }
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package de.jottyfan.quickiemod.items;
|
||||||
|
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.block.Blocks;
|
||||||
|
import net.minecraft.entity.ItemEntity;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.ItemUsageContext;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ToolSpeedpowderWaterHoe extends ToolSpeedpowderHoe {
|
||||||
|
@Override
|
||||||
|
public ActionResult useOnBlock(ItemUsageContext context) {
|
||||||
|
ActionResult res = super.useOnBlock(context);
|
||||||
|
if (!ActionResult.PASS.equals(res)) {
|
||||||
|
BlockPos pos = context.getBlockPos();
|
||||||
|
World world = context.getWorld();
|
||||||
|
BlockState oldBlockState = world.getBlockState(pos);
|
||||||
|
world.setBlockState(pos, Blocks.WATER.getDefaultState());
|
||||||
|
Hand hand = context.getHand();
|
||||||
|
PlayerEntity player = context.getPlayer();
|
||||||
|
ItemStack oldTool = player.getStackInHand(hand);
|
||||||
|
ItemStack newTool = new ItemStack(QuickieItems.SPEEDPOWDERHOE.getItem());
|
||||||
|
newTool.setDamage(oldTool.getDamage());
|
||||||
|
world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(oldBlockState.getBlock())));
|
||||||
|
player.setStackInHand(hand, newTool);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
package de.jottyfan.quickiemod.items.mat;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ToolMaterial;
|
||||||
|
import net.minecraft.recipe.Ingredient;
|
||||||
|
import net.minecraft.registry.tag.BlockTags;
|
||||||
|
import net.minecraft.registry.tag.TagKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class QuickieToolMaterial implements ToolMaterial {
|
||||||
|
|
||||||
|
private final float attackDamage;
|
||||||
|
private final int durability;
|
||||||
|
private final int enchantability;
|
||||||
|
private final float miningSpeedMuliplier;
|
||||||
|
private final Item item;
|
||||||
|
|
||||||
|
private QuickieToolMaterial(float attackDamage, int durability, int enchantability, float miningSpeedMultiplier, Item item) {
|
||||||
|
this.attackDamage = attackDamage;
|
||||||
|
this.durability = durability;
|
||||||
|
this.enchantability = enchantability;
|
||||||
|
this.miningSpeedMuliplier = miningSpeedMultiplier;
|
||||||
|
this.item = item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final QuickieToolMaterial of(float attackDamage, int durability, int enchantability, float miningSpeedMultiplier, Item item) {
|
||||||
|
return new QuickieToolMaterial(attackDamage, durability, enchantability, miningSpeedMultiplier, item);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getAttackDamage() {
|
||||||
|
return attackDamage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getDurability() {
|
||||||
|
return durability;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEnchantability() {
|
||||||
|
return enchantability;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TagKey<Block> getInverseTag() {
|
||||||
|
return BlockTags.INCORRECT_FOR_IRON_TOOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getMiningSpeedMultiplier() {
|
||||||
|
return miningSpeedMuliplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Ingredient getRepairIngredient() {
|
||||||
|
return Ingredient.ofItems(item);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package de.jottyfan.quickiemod.mixin;
|
||||||
|
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
|
import de.jottyfan.quickiemod.event.BreakBlockCallback;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Mixin(Block.class)
|
||||||
|
public class BlockBreakMixin {
|
||||||
|
|
||||||
|
@Inject(at = @At("HEAD"), method = "onBreak(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/block/BlockState;")
|
||||||
|
private void onBreak(final World world, final BlockPos blockPos, final BlockState blockState,
|
||||||
|
final PlayerEntity playerEntity, final CallbackInfoReturnable<BlockBreakMixin> info) {
|
||||||
|
ActionResult result = BreakBlockCallback.EVENT.invoker().injectBlockBreakCallback(world, blockPos, blockState,
|
||||||
|
playerEntity);
|
||||||
|
if (result == ActionResult.FAIL) {
|
||||||
|
info.cancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/quickiepowderaxe"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/quickiepowderhoe"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/quickiepowderpickaxe"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/quickiepowdershovel"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/quickiepowderwaterhoe"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/speedpowderaxe"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/speedpowderhoe"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/speedpowderpickaxe"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/speedpowdershovel"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "quickiemod:item/speedpowderwaterhoe"
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 6.0 KiB |
7
src/main/resources/data/c/tags/item/axes.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"quickiemod:speedpowderaxe",
|
||||||
|
"quickiemod:quickiepowderaxe"
|
||||||
|
]
|
||||||
|
}
|
9
src/main/resources/data/c/tags/item/hoes.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"quickiemod:speedpowderhoe",
|
||||||
|
"quickiemod:speedpowderwaterhoe",
|
||||||
|
"quickiemod:quickiepowderhoe",
|
||||||
|
"quickiemod:quickiepowderwaterhoe"
|
||||||
|
]
|
||||||
|
}
|
7
src/main/resources/data/c/tags/item/pickaxes.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"quickiemod:speedpowderpickaxe",
|
||||||
|
"quickiemod:quickiepowderpickaxe"
|
||||||
|
]
|
||||||
|
}
|
7
src/main/resources/data/c/tags/item/shovels.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"quickiemod:speedpowdershovel",
|
||||||
|
"quickiemod:quickiepowdershovel"
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "tools",
|
||||||
|
"pattern": [
|
||||||
|
"ss",
|
||||||
|
"s|",
|
||||||
|
" |"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"s": {
|
||||||
|
"item": "quickiemod:quickieingot"
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"item": "minecraft:stick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"id": "quickiemod:quickiepowderaxe",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "tools",
|
||||||
|
"pattern": [
|
||||||
|
"ss",
|
||||||
|
" |",
|
||||||
|
" |"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"s": {
|
||||||
|
"item": "quickiemod:quickieingot"
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"item": "minecraft:stick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"id": "quickiemod:quickiepowderhoe",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "tools",
|
||||||
|
"pattern": [
|
||||||
|
"sss",
|
||||||
|
" | ",
|
||||||
|
" | "
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"s": {
|
||||||
|
"item": "quickiemod:quickieingot"
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"item": "minecraft:stick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"id": "quickiemod:quickiepowderpickaxe",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "tools",
|
||||||
|
"pattern": [
|
||||||
|
"s",
|
||||||
|
"|",
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"s": {
|
||||||
|
"item": "quickiemod:quickieingot"
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"item": "minecraft:stick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"id": "quickiemod:quickiepowdershovel",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "tools",
|
||||||
|
"pattern": [
|
||||||
|
"ss",
|
||||||
|
"s|",
|
||||||
|
" |"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"s": {
|
||||||
|
"item": "quickiemod:speedingot"
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"item": "minecraft:stick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"id": "quickiemod:speedpowderaxe",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "tools",
|
||||||
|
"pattern": [
|
||||||
|
"ss",
|
||||||
|
" |",
|
||||||
|
" |"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"s": {
|
||||||
|
"item": "quickiemod:speedingot"
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"item": "minecraft:stick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"id": "quickiemod:speedpowderhoe",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "tools",
|
||||||
|
"pattern": [
|
||||||
|
"sss",
|
||||||
|
" | ",
|
||||||
|
" | "
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"s": {
|
||||||
|
"item": "quickiemod:speedingot"
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"item": "minecraft:stick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"id": "quickiemod:speedpowderpickaxe",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "tools",
|
||||||
|
"pattern": [
|
||||||
|
"s",
|
||||||
|
"|",
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"s": {
|
||||||
|
"item": "quickiemod:speedingot"
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"item": "minecraft:stick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"id": "quickiemod:speedpowdershovel",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|